Python爬蟲實戰演練之采集拉鉤網招聘信息數據
本文要點:
- 爬蟲的基本流程
- requests模塊的使用
- 保存csv
- 可視化分析展示
環境介紹
- python 3.8
- pycharm 2021專業版 激活碼
- Jupyter Notebook
pycharm 是編輯器 >> 用來寫代碼的 (更方便寫代碼, 寫代碼更加舒適)
python 是解釋器 >>> 運行解釋python代碼的
本次目標
爬蟲塊使用
內置模塊:
- import pprint >>> 格式化輸入模塊
- import csv >>> 保存csv文件
- import re >>> re 正則表達式
- import time >>> 時間模塊
第三方模塊:
- import requests >>> 數據請求模塊 pip install requests
win + R 輸入cmd,回車輸入安裝命令pip install 模塊名。
如果出現爆紅,可能是因為,網絡連接超時,切換國內鏡像源
代碼實現步驟: (爬蟲代碼基本步驟)
- 發送請求
- 獲取數據
- 解析數據
- 保存數據
開始代碼
導入模塊
import requests # 數據請求模塊 第三方模塊 pip install requests import pprint # 格式化輸出模塊 import csv # csv保存數據 import time
發送請求
url = 'https://www.lagou.com/jobs/positionAjax.json?needAddtionalResult=false' # headers 請求頭 用來偽裝python代碼, 防止被識別出是爬蟲程序, 然後被反爬 # user-agent: 瀏覽器的基本標識 headers = { 'cookie': 'privacyPolicyPopup=false; user_trace_token=20211016201224-ba4d90f0-3db5-4647-a86e-411ee3d5bfef; __lg_stoken__=08639898fbdd53a7ebf88fa16e895b59a51e47738f45faef6a32b9a88d6537bf9459b2c6d956a636a99ff599c6a260f04514df42cb77f83065d55f48a2549e60381e8da811b8; JSESSIONID=ABAAAECAAEBABIIE72FFC38A79322951663B5C7AF10CD12; WEBTJ-ID=20211016201225-17c89047f4293-0d7a7cd583dc83-b7a1438-2073600-17c89047f43a90; sajssdk_2015_cross_new_user=1; sensorsdata2015jssdkcross=%7B%22distinct_id%22%3A%2217c8904800d57b-04f17ed5193984-b7a1438-2073600-17c8904800e765%22%2C%22%24device_id%22%3A%2217c8904800d57b-04f17ed5193984-b7a1438-2073600-17c8904800e765%22%7D; PRE_UTM=; PRE_HOST=; PRE_LAND=https%3A%2F%2Fwww.lagou.com%2Fjobs%2Flist%5Fpython%3FlabelWords%3D%26fromSearch%3Dtrue%26suginput%3D; LGSID=20211016201225-7b8aa578-74ab-4b09-885c-ebbe57a6029a; PRE_SITE=; LGUID=20211016201225-fda15dbb-7823-4a2d-9d80-258caf018f02; _ga=GA1.2.903785807.1634386346; _gat=1; Hm_lvt_4233e74dff0ae5bd0a3d81c6ccf756e6=1634386346; _gid=GA1.2.701447082.1634386346; X_HTTP_TOKEN=ba154973a88f2f64153683436141effc1d544fa2ed; Hm_lpvt_4233e74dff0ae5bd0a3d81c6ccf756e6=1634386352; LGRID=20211016201232-8913a057-d37d-41c3-b094-a04cf36515a7; SEARCH_ID=ff32d1294b464305b4e0907f659ef2a7', 'referer': 'https://www.lagou.com/jobs/list_python?labelWords=&fromSearch=true&suginput=', 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36', } data = { 'first': 'false', 'pn': page, 'kd': 'python', 'sid': 'bf8ed05047294473875b2c8373df0357' } # response 自定義變量 可以自己定義 response = requests.post(url=url, data=data, headers=headers)
<Response [200]> 獲取服務器給我們響應數據
解析數據
json數據最好解析 非常好解析, 就根據字典鍵值對取值
result = response.json()['content']['positionResult']['result'] # 循環遍歷 從 result 列表裡面 把元素一個一個提取出來 for index in result: # pprint.pprint(index) # href = index['positionId'] href = f'https://www.lagou.com/jobs/{index["positionId"]}.html' dit = { '標題': index['positionName'], '地區': index['city'], '公司名字': index['companyFullName'], '薪資': index['salary'], '學歷': index['education'], '經驗': index['workYear'], '公司標簽': ','.join(index['companyLabelList']), '詳情頁': href, } # ''.join() 把列表轉成字符串 '免費班車', csv_writer.writerow(dit) print(dit)
加翻頁
for page in range(1, 31): print(f'------------------------正在爬取第{page}頁-------------------------') time.sleep(1)
保存數據
f = open('招聘數據.csv', mode='a', encoding='utf-8', newline='') csv_writer = csv.DictWriter(f, fieldnames=[ '標題', '地區', '公司名字', '薪資', '學歷', '經驗', '公司標簽', '詳情頁', ]) csv_writer.writeheader() # 寫入表頭
運行代碼,得到數據
【付費VIP完整版】隻要看瞭就能學會的教程,80集Python基礎入門視頻教學
點這裡即可免費在線觀看
到此這篇關於Python爬蟲實戰演練之采集拉鉤網招聘信息數據的文章就介紹到這瞭,更多相關Python 采集拉鉤網招聘信息數據內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- Python實現復制文檔數據
- Python爬蟲實戰之虎牙視頻爬取附源碼
- Python實現爬取某站視頻彈幕並繪制詞雲圖
- 利用Python實時獲取steam特惠遊戲數據
- Python爬蟲入門教程01之爬取豆瓣Top電影