爬取拉勾網終於成功 期間遇見的各類問題大彙總

2021-09-22 01:37:35 字數 2226 閱讀 7406

初入爬蟲一行的學習,對爬蟲有了簡單的了解,一直都想試試拉勾網,但是頻頻被拒,拉勾的反爬簡直太強了。天下沒有不透風的牆,查詢了各種文獻,看了各種帖子,終於克服了乙個又乙個的難題。下面我們來總結一下,以備今後引以為戒。

problem 1:'status': false, 'msg': '您操作太頻繁,請稍後再訪問', 'clientip': '117.136.41.41', 'state': 2402

import requests

url = ''

headers =

r = requests.get(url,headers= headers)

print(r.text)

基本80%的**都可以通過以上的方式獲取基本資訊,但是拉勾網太強大了,試過多次一直出現這個問題,這句話是說我訪問的太過頻繁。所以我就在網上找了一些免費的**ip,但是依舊出現這個問題,而且clientip仍然是我本網的ip。後來看了一些帖子,大致了解到拉勾應該是記錄了我的訪問一些cookie,所以在headers中加入了cookie.問題解決,但是出現了problem 2的問題。

原文:problem 2:httpconnectionpool(host:xx)max retries exceeded with url ': failed to establish a new connection: [errno 99] cannot assign requested address'

爬蟲多次訪問同乙個**一段時間後就會出現錯誤,原因是因為在每次資料傳輸前客戶端要和伺服器建立tcp連線,為節省傳輸消耗,預設為keep-alive,即連線一次,傳輸多次,然而在多次訪問後不能結束並回到連線池中,導致不能產生新的連線

headers中的connection預設為keep-alive,

將header中的connection一項置為close

headers =

# agents = random.sample(agent, 1)

url_start = "資料分析?city=%e6%88%90%e9%83%bd&cl=false&fromsearch=true&labelwords=&suginput="

url_parse = "全國&needaddtionalresult=false"

headers =

s = requests.session()

s.get(url_start, headers=headers, timeout=3) # 請求首頁獲取cookies

cookie = s.cookies # 為此次獲取的cookies

response = s.post(url_parse, data=data, headers=headers, proxies=proxies,cookies=cookie, timeout=3) # 獲取此次文字

time.sleep(5)

text = json.loads(response.text)

print(text)

info = text["content"]["positionresult"]["result"]

for i in info:

print(i["companyfullname"])

companyfullname = i["companyfullname"]

print(i["positionname"])

positionname = i["positionname"]

print(i["salary"])

salary = i["salary"]

print(i["companysize"])

companysize = i["companysize"]

print(i["skilllables"])

skilllables = i["skilllables"]

print(i["createtime"])

createtime = i["createtime"]

print(i["district"])

district = i["district"]

print(i["stationname"])

stationname = i["stationname"]

if __name__ == '__main__':

main()

Python爬取拉勾網招聘資訊

最近自學研究爬蟲,特找個地方記錄一下 就來到了51cto先測試一下。第一次發帖不太會。先貼個 首先開啟拉勾網首頁,然後在搜尋框輸入關鍵字python。開啟抓包工具。因為我的是mac os,所以用的自帶的safari瀏覽器的開啟時間線錄製。通過抓取post方法,可以看到完整url 然後可以發現post...

初級爬蟲 爬取拉勾網職位資訊

主要用到的庫 requests 1.原始url位址,我們檢視網頁源 發現裡面並沒有我們想要的職位資訊,這是因為拉勾網有反爬蟲機制,它的職位資訊是通過ajax動態載入的。2.我們按下f12,找到network 在左側name中找到 positionajax.json?needaddtionalresu...

拉勾網職位資料爬取 按公司規模爬取

全部的 見我的github 這裡改進了一下之前文章 拉勾網職位資料爬取,由於拉勾網最多隻會顯示30頁的職位資訊,為了獲取更多的職位資訊,就要分類爬取。由於北京的python職位很多,超過了30頁的部分就不顯示了,我為了能夠比較全的爬取資料,就進行了分類爬取。這裡我選擇公司規模這個類別 小於15人 1...