3獲取所有post 利用爬蟲快速獲取招聘資訊

2021-10-14 17:44:01 字數 2443 閱讀 4979

目前工作在技能和前景上雙雙陷入瓶頸,想在各大招聘的要求裡找到市場上人才缺口所需要的能力。那麼獲取招聘資訊詳情便是至關重要的。剛好一直有想學習的爬蟲的意願,就帶著這份目的開始練練手,從自己的需求到落地做個小小的實現

通過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 ...