Python爬蟲(chóng)實(shí)戰(zhàn)演練之采集拉鉤網(wǎng)招聘信息數(shù)據(jù)
本文要點(diǎn):
- 爬蟲(chóng)的基本流程
- requests模塊的使用
- 保存csv
- 可視化分析展示
環(huán)境介紹
- python 3.8
- pycharm 2021專(zhuān)業(yè)版 激活碼
- Jupyter Notebook
pycharm 是編輯器 >> 用來(lái)寫(xiě)代碼的 (更方便寫(xiě)代碼, 寫(xiě)代碼更加舒適)
python 是解釋器 >>> 運(yùn)行解釋python代碼的
本次目標(biāo)
爬蟲(chóng)塊使用
內(nèi)置模塊:
- import pprint >>> 格式化輸入模塊
- import csv >>> 保存csv文件
- import re >>> re 正則表達(dá)式
- import time >>> 時(shí)間模塊
第三方模塊:
- import requests >>> 數(shù)據(jù)請(qǐng)求模塊 pip install requests
win + R 輸入cmd,回車(chē)輸入安裝命令pip install 模塊名。
如果出現(xiàn)爆紅,可能是因?yàn)椋W(wǎng)絡(luò)連接超時(shí),切換國(guó)內(nèi)鏡像源
代碼實(shí)現(xiàn)步驟: (爬蟲(chóng)代碼基本步驟)
- 發(fā)送請(qǐng)求
- 獲取數(shù)據(jù)
- 解析數(shù)據(jù)
- 保存數(shù)據(jù)
開(kāi)始代碼
導(dǎo)入模塊
import requests # 數(shù)據(jù)請(qǐng)求模塊 第三方模塊 pip install requests import pprint # 格式化輸出模塊 import csv # csv保存數(shù)據(jù) import time
發(fā)送請(qǐng)求
url = 'https://www.lagou.com/jobs/positionAjax.json?needAddtionalResult=false' # headers 請(qǐng)求頭 用來(lái)偽裝python代碼, 防止被識(shí)別出是爬蟲(chóng)程序, 然后被反爬 # user-agent: 瀏覽器的基本標(biāo)識(shí) 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]> 獲取服務(wù)器給我們響應(yīng)數(shù)據(jù)
解析數(shù)據(jù)
json數(shù)據(jù)最好解析 非常好解析, 就根據(jù)字典鍵值對(duì)取值
result = response.json()['content']['positionResult']['result'] # 循環(huán)遍歷 從 result 列表里面 把元素一個(gè)一個(gè)提取出來(lái) for index in result: # pprint.pprint(index) # href = index['positionId'] href = f'https://www.lagou.com/jobs/{index["positionId"]}.html' dit = { '標(biāo)題': index['positionName'], '地區(qū)': index['city'], '公司名字': index['companyFullName'], '薪資': index['salary'], '學(xué)歷': index['education'], '經(jīng)驗(yàn)': index['workYear'], '公司標(biāo)簽': ','.join(index['companyLabelList']), '詳情頁(yè)': href, } # ''.join() 把列表轉(zhuǎn)成字符串 '免費(fèi)班車(chē)', csv_writer.writerow(dit) print(dit)
加翻頁(yè)
for page in range(1, 31): print(f'------------------------正在爬取第{page}頁(yè)-------------------------') time.sleep(1)
保存數(shù)據(jù)
f = open('招聘數(shù)據(jù).csv', mode='a', encoding='utf-8', newline='') csv_writer = csv.DictWriter(f, fieldnames=[ '標(biāo)題', '地區(qū)', '公司名字', '薪資', '學(xué)歷', '經(jīng)驗(yàn)', '公司標(biāo)簽', '詳情頁(yè)', ]) csv_writer.writeheader() # 寫(xiě)入表頭
運(yùn)行代碼,得到數(shù)據(jù)
【付費(fèi)VIP完整版】只要看了就能學(xué)會(huì)的教程,80集Python基礎(chǔ)入門(mén)視頻教學(xué)
點(diǎn)這里即可免費(fèi)在線(xiàn)觀(guān)看
到此這篇關(guān)于Python爬蟲(chóng)實(shí)戰(zhàn)演練之采集拉鉤網(wǎng)招聘信息數(shù)據(jù)的文章就介紹到這了,更多相關(guān)Python 采集拉鉤網(wǎng)招聘信息數(shù)據(jù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Python爬蟲(chóng)實(shí)現(xiàn)熱門(mén)電影信息采集
- Python爬蟲(chóng)采集微博視頻數(shù)據(jù)
- Python爬蟲(chóng)實(shí)戰(zhàn)演練之采集糗事百科段子數(shù)據(jù)
- Python爬蟲(chóng)入門(mén)案例之回車(chē)桌面壁紙網(wǎng)美女圖片采集
- 基于Python爬蟲(chóng)采集天氣網(wǎng)實(shí)時(shí)信息
- Python爬蟲(chóng)_城市公交、地鐵站點(diǎn)和線(xiàn)路數(shù)據(jù)采集實(shí)例
- 講解Python的Scrapy爬蟲(chóng)框架使用代理進(jìn)行采集的方法
- Python制作爬蟲(chóng)采集小說(shuō)
- 詳解Python如何批量采集京東商品數(shù)據(jù)流程
相關(guān)文章
Python接口自動(dòng)化淺析requests請(qǐng)求封裝原理
本文主要通過(guò)源碼分析,總結(jié)出一套簡(jiǎn)潔的requests請(qǐng)求類(lèi)封裝,幫助大家更好的由淺入深的理解python接口自動(dòng)化,希望對(duì)大家的python接口自動(dòng)化學(xué)習(xí)有所幫助2021-08-08python PIL/cv2/base64相互轉(zhuǎn)換實(shí)例
今天小編就為大家分享一篇python PIL/cv2/base64相互轉(zhuǎn)換實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-01-01python神經(jīng)網(wǎng)絡(luò)facenet人臉檢測(cè)及keras實(shí)現(xiàn)
這篇文章主要為大家介紹了python神經(jīng)網(wǎng)絡(luò)facenet人臉檢測(cè)及keras實(shí)現(xiàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05Python異常之常見(jiàn)的Bug類(lèi)型解決方法
這篇文章主要介紹了Python異常之常見(jiàn)的Bug類(lèi)型解決方法,主要分享一些粗心導(dǎo)致和知識(shí)不熟練導(dǎo)致的語(yǔ)法錯(cuò)誤以及被迫掉坑等內(nèi)容,文章介紹非常詳細(xì)需要的小伙伴可以參考一下2022-03-03python庫(kù)pycryptodom加密技術(shù)探索(公鑰加密私鑰加密)
這篇文章主要為大家介紹了python庫(kù)pycryptodom加密技術(shù)探索(公鑰加密私鑰加密),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01