目前工作在技能和前景上雙雙陷入瓶頸,想在各大招聘的要求裡找到市場上人才缺口所需要的能力。那麼獲取招聘資訊詳情便是至關重要的。剛好一直有想學習的爬蟲的意願,就帶著這份目的開始練練手,從自己的需求到落地做個小小的實現
通過f12的除錯模式,可以輕鬆過得到網頁訪問的介面。分析這串url也可以輕鬆的看到請求的引數。包括國家id,城市id等等啦。
同樣我們也可以獲取到這個請求所返回的引數,這裡包括搜尋頁面裡的所有招聘標題及簡介。
當然這裡只是所有招聘資訊的列表,我們需要的是更加詳細的資訊,所以進入每個單獨的招聘頁面裡,在同上方法如法炮製,可以得到單個詳情頁面裡的資訊。
通過這個接**們不難發現,所有的招聘資訊都有自己的postid,只要找到其相應的postid,就能抓取到其所有的資訊。
那麼我們只需要通過搜尋頁面獲得所有postid,再封裝請求,就能拿到所有的招聘資訊了。
首先,遍歷搜尋結果,把每一頁的postid抓取下來。
import requests
postids =
# 遍歷12頁
for i in range(12):
try:
#page_num 頁碼
page_num=i
base_url=''+str(page_num)+'&pagesize=10&language=zh-cn&area=cn'
print(page_num,base_url)
res=requests.get(base_url,headers=headers)
res_json=res.json()
re=res.json()
#獲取json串中key data所包含的資訊
data = re["data"]
posts = data["posts"]
for post in posts:
postid = post["postid"]
except baseexception:
print("out of range")
postids=list(set(postids))
print(postids,len(postids))
可以看到我們獲取的所有頁與postid
有了所有的postid,就可以開始迴圈傳送請求,獲得相應的json結果,再從json裡解析出我們想要的引數資訊。在這裡我選擇將所有的資訊,寫入本地資料夾。
information={}
num=0
for postid in postids:
careers_url=""+postid+"&language=zh-cn"
rep = requests.get(careers_url)
rep_json=rep.json()
re=rep.json()
datas = re["data"]
fpath="d:/recruit.txt"
num=num+1
print(num)
with open(fpath, 'a+',encoding='utf-8') as f:
f.write(str(num)+'n'+
str(postid)+'n'+
datas["recruitpostname"]+'n'+
datas["locationname"]+'n'+
datas["bgname"]+'n'+
datas["categoryname"]+'n'+
datas["responsibility"]+'n'+
datas["requirement"]+'n'+
datas["lastupdatetime"]+'n'+
"-------------------------------"+'n'
) f.close()
最後的結果截圖。
Python3 爬蟲Post傳參
前言 python3 post 傳參主要用到的是urllib.request.urlopen url,data 引數當中data。data引數主要是設定post的傳參。天象獨行 首先,在計畫使用post傳參爬蟲的時,我們需要確定幾點 1 需要訪問的url。2 請求物件 使用urllib.reques...
利用反射獲取類的所有字段
以下是利用反射獲取類refpoint中所有的字段。一,refpoint類 public class refpoint public class class02 二,列印出所有類refpoint中的所有字段 refpoint refpoint01 new refpoint 3 type typeobj...
django快速獲取專案所有的URL
django1.10快速獲取專案所有的url列表,可以用於許可權控制 函式如下 import re defget url urllist parent depth 0 url list url dict for entry in urllist url entry.regex.pattern if ...