準備工作
- 建立項目-建立PythonFile
- 安裝爬蟲子產品
1
pip install requests
- requests的常用函數
- request.get(),對應http協定的get請求,也就是把網頁下載下傳下來。
- request.post(),對應Http協定的post請求,就是把資料上傳到網頁伺服器。
- 觀察boss直聘的url。
1
https://www.zhipin.com/c101250100-p110101/
- 通過觀察發現,後面應該是城市代碼和職位代碼
- 通過檢查-network發現,城市代碼應該是儲存在city.json裡面
- 職位代碼應該是儲存在position.json裡面
通過觀察:city.json的url為
| |
postion.json的url為
| |
爬取城市代碼
- 測試連接配接 傳回值:
1 2 3 4 5
import requests # requests-->請求 url = 'https://www.zhipin.com/wapi/zpCommon/data/city.json' # boss直聘城市連結 response = requests.get(url) print(response) # 列印響應
1
<Response [200]>
200:代表傳回成功
404:網絡連接配接失敗
500:伺服器奔潰
- 加入浏覽器僞裝頭’user-agent’,防止被伺服器發現你是爬蟲
1
headers = {'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.106 Safari/537.36'}
- 第一次列印 結果如下: 根據上圖觀察,傳回的json可以當成是一個多層字典。
1 2 3 4 5 6 7 8
import requests from pprint import pprint url = 'https://www.zhipin.com/wapi/zpCommon/data/city.json' # boss直聘城市代碼 headers = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) \ AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.106 Safari/537.36'} response = requests.get(url, headers=headers) data = response.json() # 從傳回對象中提取json pprint(data)
資料均在
zpData\cityList
下,于是對zpData進行第一次解包。
對cityList進行第二次解包。
| |
省和城市代碼就爬取完畢了,直接粘貼到excel就可以。至于如何直接導出excel,後面再說。