日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Python爬蟲小例子——爬取51job發布的工作職位

瀏覽:103日期:2022-07-18 08:05:55

概述

不知從何時起,Python和爬蟲就如初戀一般,情不知所起,一往而深,相信很多朋友學習Python,都是從爬蟲開始,其實究其原因,不外兩方面:其一Python對爬蟲的支持度比較好,類庫眾多。其二Pyhton的語法簡單,入門容易。所以兩者形影相隨,不離不棄,本文主要以一個簡單的小例子,簡述Python在爬蟲方面的簡單應用,僅供學習分享使用,如有不足之處,還請指正。

涉及知識點

本例主要爬取51job發布的工作職位,用到的知識點如下:

開發環境及工具:主要用到Python3.7 ,IDE為PyCharm requests類庫:本類庫封裝了python的內置模塊,主要用于網絡的請求和獲取數據,可以支持不同形式的請求。 BeautifulSoup庫:主要用于解析獲取的數據,包括Html,Xml,Json等不同的格式。 數據持久化:主要是將內存中的數據,保存到數據庫或者文件中。

爬蟲的基本步驟

爬蟲的基本步驟,如下圖所示:

Python爬蟲小例子——爬取51job發布的工作職位

爬取目標

如有要爬取相關內容,首先要對爬取的目標進行分析,了解其目錄結構,才能進行解析。本例主要爬取51job中的工作列表,如下所示:

Python爬蟲小例子——爬取51job發布的工作職位

核心源碼

1.獲取數據

定義一個函數get_data,用于發起請求并獲取數據,如下所示:

headers中的User-Agent主要用于模擬瀏覽器,不然會被反爬蟲程序屏蔽,http狀態碼為418,意思是被網站的反爬程序返回的。

encoding是要爬取的網站的編碼為gbk,如果不加,會產生亂碼,默認為utf-8

def get_data(req_url): '''獲取數據''' headers = { ’User-Agent’: ’Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko’, ’Accept-Language’: ’zh-Hans-CN, zh-Hans;q=0.5’ } resp = requests.get(req_url, headers=headers) resp.encoding = ’gbk’ # 不加會產生中文亂碼 if resp.status_code == 200: return resp.text else: return None

2.解析數據

定義一個函數parse_data,用于解析獲取到的內容,如下所示:

采用BeautifulSoup,將返回的文本,解析成html對象,并獲取對應的內容。本例主要獲取工作的列表

def parse_data(resp_html): '''解析數據,并返回列表''' soup = BeautifulSoup(resp_html, features=’html.parser’) job_table = soup.find(’div’, attrs={’class’: ’dw_table’}) # print(job_table) job_list = job_table.find_all(’div’, attrs={’class’: ’el’}) # print(job_list) # 循環列表,去掉第一個title和最后一個 res_list = [] for job in job_list[1: -1]: job_name = job.find(’p’, attrs={’class’: 't1'}).find(’span’).find(’a’).get_text() job_name = job_name.replace(’rn’, ’’).strip() job_company = job.find(’span’, attrs={’class’: 't2'}).find(’a’).get_text() job_addr = job.find(’span’, attrs={’class’: 't3'}).get_text() job_salary = job.find(’span’, attrs={’class’: 't4'}).get_text() job_time = job.find(’span’, attrs={’class’: 't5'}).get_text() # print(’工作信息:’, job_name, ’---’, job_company, ’---’, job_addr, ’---’, job_salary, ’---’, job_time) res_item = { ’工作名稱’: job_name, ’公司’: job_company, ’工作地址’: job_addr, ’薪資水平’: job_salary, ’發布時間’: job_time } res_list.append(res_item) return res_list

3.保存數據

定義一個函數save_data,用于將獲取到的內容保存到json文件中,如下所示:

with函數 可以自動進行釋放。因包含中文,所以json文件的編碼為utf-8,否則會出現亂碼

def save_data(res_list): '''保存數據''' with open(’jobs.json’, ’w’, encoding=’utf-8’) as f: res_list_json = json.dumps(res_list, ensure_ascii=False) f.write(res_list_json)

4.整體調用步驟

依次調用定義的三個函數,如下所示:

if __name__ == ’__main__’: '''如果是主程序自己調用''' req_url = ’https://search.51job.com/list/040000,000000,0000,00,9,99,java,2,1.html?lang=c&stype=1&postchannel=0000&workyear=99&cotype=99&degreefrom=99&jobterm=99&companysize=99&lonlat=0%2C0&radius=-1&ord_field=0&confirmdate=9&fromType=&dibiaoid=0&address=&line=&specialarea=00&from=&welfare=’ # 獲取數據 resp_html = get_data(req_url) # print(html) # 解析數據 res_list = parse_data(resp_html) # 保存數據 save_data(res_list)

爬取結果展示

爬取的結果保存在jobs.json文件中,如下所示:

[ { '工作名稱': 'Java架構師', '公司': '深圳市鉆木信息技術有限公司', '工作地址': '深圳-福田區', '薪資水平': '1.8-3萬/月', '發布時間': '06-13' }, { '工作名稱': 'Java實習生 6k起', '公司': '深圳市智玩創新科技有限公司', '工作地址': '深圳-福田區', '薪資水平': '6-8千/月', '發布時間': '06-13' }, { '工作名稱': 'Java實習生6k起', '公司': '深圳市康姆達科技有限公司', '工作地址': '深圳-南山區', '薪資水平': '6-8千/月', '發布時間': '06-13' }, { '工作名稱': 'Java開發工程師', '公司': '深圳市網新新思軟件有限公司', '工作地址': '深圳-南山區', '薪資水平': '1.5-1.7萬/月', '發布時間': '06-13' }, { '工作名稱': 'Java開發工程師', '公司': '深圳市睿服科技有限公司', '工作地址': '深圳-福田區', '薪資水平': '1.3-1.7萬/月', '發布時間': '06-13' }, { '工作名稱': 'Java開發經理', '公司': '深圳市聚惠企業登記代理有限公司', '工作地址': '深圳-龍華新區', '薪資水平': '1-3萬/月', '發布時間': '06-13' }, { '工作名稱': '高級JAVA', '公司': '深圳易加油信息科技有限公司', '工作地址': '深圳-南山區', '薪資水平': '1.5-2.1萬/月', '發布時間': '06-13' }, { '工作名稱': 'Java高級開發工程師', '公司': '深圳市綠聯科技有限公司', '工作地址': '深圳-龍華新區', '薪資水平': '2-3萬/月', '發布時間': '06-13' }, { '工作名稱': 'Java開發工程師', '公司': '深圳市博悅科創科技有限公司', '工作地址': '深圳-南山區', '薪資水平': '1-1.5萬/月', '發布時間': '06-13' }, { '工作名稱': 'Java高級開發工程師', '公司': '易普森智慧健康科技(深圳)有限公...', '工作地址': '深圳', '薪資水平': '1.5-2.5萬/月', '發布時間': '06-13' }, { '工作名稱': 'Java開發工程師', '公司': '深圳易世通達科技有限公司', '工作地址': '深圳-南山區', '薪資水平': '1.2-1.8萬/月', '發布時間': '06-13' }, { '工作名稱': 'Java開發工程師', '公司': '蘇州今融加科技有限公司', '工作地址': '深圳-福田區', '薪資水平': '1.5-2萬/月', '發布時間': '06-13' }, { '工作名稱': 'Java后端開發工程師', '公司': '深圳市長隆科技有限公司', '工作地址': '深圳-龍崗區', '薪資水平': '1.5-2萬/月', '發布時間': '06-13' }, { '工作名稱': 'Java開發工程師', '公司': '深圳市元諾智能系統有限公司', '工作地址': '深圳-龍華新區', '薪資水平': '1-1.5萬/月', '發布時間': '06-13' }, { '工作名稱': 'java 有物流類經驗', '公司': '深圳市歐恩德技術有限公司', '工作地址': '深圳-羅湖區', '薪資水平': '0.8-1.1萬/月', '發布時間': '06-13' }, { '工作名稱': 'Java開發工程師-2020校園招聘', '公司': '金蝶軟件(中國)有限公司', '工作地址': '深圳-南山區', '薪資水平': '0.8-1.6萬/月', '發布時間': '06-13' }, { '工作名稱': 'Java高級開發工程師', '公司': '豐疆智能科技股份有限公司', '工作地址': '深圳-南山區', '薪資水平': '2.5-3萬/月', '發布時間': '06-13' }, { '工作名稱': 'JAVA軟件開發工程師', '公司': '深圳市吉星時代科技有限公司', '工作地址': '深圳-龍崗區', '薪資水平': '2-3萬/月', '發布時間': '06-13' }, { '工作名稱': 'JAVA 高級軟件工程師', '公司': '相通網絡技術有限公司', '工作地址': '深圳-福田區', '薪資水平': '1.5-3萬/月', '發布時間': '06-13' }, { '工作名稱': 'JAVA開發工程師(接受應屆生)', '公司': '深圳市智巖科技有限公司', '工作地址': '深圳-南山區', '薪資水平': '0.8-1萬/月', '發布時間': '06-13' }, { '工作名稱': 'Java后臺開發工程師', '公司': '深圳市炬馳科技發展有限公司', '工作地址': '深圳', '薪資水平': '1-1.5萬/月', '發布時間': '06-13' }, { '工作名稱': 'Java開發工程師', '公司': '深圳市韶音科技有限公司', '工作地址': '深圳-寶安區', '薪資水平': '0.8-1萬/月', '發布時間': '06-13' }, { '工作名稱': 'JAVA 開發工程師', '公司': '深圳市優博訊科技股份有限公司', '工作地址': '深圳-南山區', '薪資水平': '1-1.5萬/月', '發布時間': '06-13' }, { '工作名稱': 'Java開發工程師', '公司': '深圳市有豆科技有限公司', '工作地址': '深圳-寶安區', '薪資水平': '1.8-3萬/月', '發布時間': '06-13' }, { '工作名稱': 'Saas平臺架構師(Java方向)', '公司': '深圳市智布互聯紡織科技有限公司', '工作地址': '深圳-南山區', '薪資水平': '1.7-2.5萬/月', '發布時間': '06-13' }, { '工作名稱': 'Java開發實習生', '公司': '云軟科技', '工作地址': '深圳-寶安區', '薪資水平': '6-9千/月', '發布時間': '06-13' }, { '工作名稱': 'Java高級開發工程師', '公司': '深圳市阿爾法智匯科技有限公司', '工作地址': '深圳-寶安區', '薪資水平': '2-4萬/月', '發布時間': '06-13' }, { '工作名稱': 'Java 全棧開發工程師', '公司': '深圳市杰納斯科技有限公司', '工作地址': '深圳-寶安區', '薪資水平': '1-3.5萬/月', '發布時間': '06-13' }, { '工作名稱': '中高級java工程師', '公司': '北京聯創智融信息技術有限公司', '工作地址': '深圳-福田區', '薪資水平': '1.3-1.8萬/月', '發布時間': '06-13' }, { '工作名稱': 'Java開發工程師', '公司': '得實信息科技(深圳)有限公司', '工作地址': '深圳-南山區', '薪資水平': '0.6-1萬/月', '發布時間': '06-13' }, { '工作名稱': 'Java開發工程師', '公司': '深圳市聯創科技集團有限公司', '工作地址': '深圳-龍崗區', '薪資水平': '1-1.5萬/月', '發布時間': '06-13' }, { '工作名稱': '中級JAVA(J13824)', '公司': '銀雁科技服務集團股份有限公司', '工作地址': '深圳-福田區', '薪資水平': '1-1.5萬/月', '發布時間': '06-13' }, { '工作名稱': 'java工程師', '公司': '深圳市安思疆科技有限公司', '工作地址': '深圳-南山區', '薪資水平': '0.8-1.6萬/月', '發布時間': '06-13' }, { '工作名稱': 'JAVA 高級開發工程師', '公司': '匯才保險代理(深圳)有限公司', '工作地址': '深圳-羅湖區', '薪資水平': '1.5-2萬/月', '發布時間': '06-13' }, { '工作名稱': 'Java高級開發工程師(直連)', '公司': '深圳市天泰國際航空旅行社有限公司...', '工作地址': '深圳', '薪資水平': '2-4萬/月', '發布時間': '06-13' }, { '工作名稱': 'JAVA工程師', '公司': '深圳市開度貿易有限公司', '工作地址': '深圳-南山區', '薪資水平': '0.8-1.2萬/月', '發布時間': '06-13' }, { '工作名稱': '后臺開發Leader(JAVA方向)', '公司': '深圳金世紀保險經紀有限公司', '工作地址': '深圳-福田區', '薪資水平': '3-4萬/月', '發布時間': '06-13' }, { '工作名稱': 'Java開發工程師', '公司': '深圳市中深力人力資源管理有限公司...', '工作地址': '深圳-南山區', '薪資水平': '1-1.5萬/月', '發布時間': '06-13' }, { '工作名稱': 'Java高級開發工程師', '公司': '研祥高科技控股集團有限公司', '工作地址': '深圳-光明新區', '薪資水平': '0.9-1.8萬/月', '發布時間': '06-13' }, { '工作名稱': 'Java(證券不加班)', '公司': '上海華騰軟件系統有限公司', '工作地址': '深圳-福田區', '薪資水平': '1.8-2.2萬/月', '發布時間': '06-13' }, { '工作名稱': 'Java高級開發工程師', '公司': '深圳大美商業地產管理有限公司', '工作地址': '深圳-福田區', '薪資水平': '1.5-2萬/月', '發布時間': '06-13' }, { '工作名稱': '資深/高級Java工程師', '公司': '未來穿戴(深圳)有限公司', '工作地址': '深圳-南山區', '薪資水平': '3-4萬/月', '發布時間': '06-13' }, { '工作名稱': 'Java高級開發工程師', '公司': '深圳市太陽星通信科技有限公司', '工作地址': '深圳-南山區', '薪資水平': '0.8-1.5萬/月', '發布時間': '06-13' }, { '工作名稱': 'Java高級開發工程師', '公司': '深圳市藍鷹立德軟件咨詢有限公司', '工作地址': '深圳-南山區', '薪資水平': '1.5-1.8萬/月', '發布時間': '06-13' }, { '工作名稱': 'JAVA(高級、架構)', '公司': '深圳市幾米物聯有限公司', '工作地址': '深圳-寶安區', '薪資水平': '2.2-3.2萬/月', '發布時間': '06-13' }, { '工作名稱': 'JAVA開發工程師', '公司': '江蘇康尚生物醫療科技有限公司', '工作地址': '深圳-寶安區', '薪資水平': '1-1.5萬/月', '發布時間': '06-13' }, { '工作名稱': 'java架構師', '公司': '深圳市泓齊網絡科技有限公司', '工作地址': '深圳', '薪資水平': '1.5-1.8萬/月', '發布時間': '06-13' }, { '工作名稱': 'Java開發工程師', '公司': '深圳市智?科技有限公司', '工作地址': '深圳-福田區', '薪資水平': '0.9-1.5萬/月', '發布時間': '06-13' }, { '工作名稱': 'Java開發工程師', '公司': '上海舟恩信息技術有限公司', '工作地址': '深圳-南山區', '薪資水平': '1.4-1.9萬/月', '發布時間': '06-13' }]

進一步思考

本例可以進一步優化的空間,如下所示:

本次爬蟲只是單次爬取,數據量相對小,如果要爬取大量數據的時候,則需要使用多線程相關的知識。 基礎的爬蟲,只能爬取靜態渲染的內容,如果是異步動態渲染的數據,如何爬取呢? 將爬取的結果保存到數據庫如何操作呢?

以上就是Python爬蟲小例子——爬取51job發布的工作職位的詳細內容,更多關于Python爬蟲爬取工作職位的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产精品大片| 久久免费大视频| 久久视频精品| 国产精品v亚洲精品v日韩精品| 欧美aa在线观看| 不卡福利视频| 精品国产a一区二区三区v免费| 亚洲精品乱码久久久久久蜜桃麻豆| 久久久久久久久丰满| 国产精品国产一区| 精品国产麻豆| 中文字幕成在线观看| 亚洲综合电影| 视频一区中文| 国产亚洲在线观看| 欧美综合国产| 99热精品在线| 日韩欧美三区| 国产探花一区| 国产精品白丝一区二区三区| 97久久亚洲| 久久一区视频| 国产成人a视频高清在线观看| 国产精品亚洲欧美一级在线| 欧美激情一区| 久久成人av| 久久久久亚洲| 免费美女久久99| 国产香蕉精品| 欧美激情福利| 国内揄拍国内精品久久| 久久69成人| 成人自拍av| 亚洲精品三级| 青青国产精品| 激情丁香综合| 欧美一区成人| 日韩中文欧美| 婷婷五月色综合香五月| 国产精品成人自拍| 电影亚洲精品噜噜在线观看| 六月婷婷一区| 久久电影tv| 亚洲开心激情| 久久91导航| 国产欧美日韩一区二区三区四区| 国产欧美自拍一区| 伊人精品视频| 国产精品xx| 日韩欧美激情| 亚洲福利专区| 欧美激情视频一区二区三区免费 | 国产精品一页| 日韩欧美自拍| 国产欧美日韩| 六月婷婷一区| 91精品在线观看国产| 国产日韩一区二区三区在线播放| 欧美 日韩 国产一区二区在线视频| 青青草91视频| 亚洲精品乱码| 视频在线观看91| 欧美.日韩.国产.一区.二区| 91日韩免费| 欧美激情五月| 国产伦精品一区二区三区千人斩| 一级欧洲+日本+国产| 国产极品模特精品一二| 欧美日韩国产一区精品一区| 国产不卡一区| 国产精品久久久久久久久久妞妞 | 精品在线网站观看| 亚洲精品三级| 亚洲精品小说| 综合视频一区| 欧美日韩国产高清| 久久人人97超碰国产公开结果| 日韩成人精品一区| 正在播放日韩精品| 夜夜嗨av一区二区三区网站四季av| 欧美aa国产视频| 黄色成人91| 青青草91久久久久久久久| 日本不卡一区二区| 日本三级亚洲精品| 国产日韩亚洲欧美精品| 国产精品一区二区三区四区在线观看| 欧美一级网址| 麻豆久久一区| 国内不卡的一区二区三区中文字幕| 国产精品成人国产| 欧美伊人久久| 精品无人区麻豆乱码久久久| 久久久久久色| 国产免费久久| 国精品产品一区| 少妇精品导航| 日韩精品一二三| 国产乱人伦精品一区| 国产一区福利| 狠狠色综合网| 91精品福利观看| 日韩欧美另类一区二区| 亚洲激情五月| 国产精品久久| 久久久噜噜噜| 亚洲高清二区| 色综合视频一区二区三区日韩| 欧美偷窥清纯综合图区| 精品一区二区三区中文字幕视频 | 伊人精品在线| 国产日韩一区二区三免费高清 | 欧美成人基地 | 色网在线免费观看| 日韩av网站在线观看| 999国产精品永久免费视频app| 国产亚洲一区二区三区不卡| 国产综合婷婷| 亚洲综合在线电影| 国产精品亚洲二区| 在线综合亚洲| av一区在线| 日韩免费在线| 日韩精彩视频在线观看| 久久免费黄色| 欧美亚洲激情| 91久久在线| 亚洲午夜一级| 欧洲av不卡| 久久国产主播| 国产99久久| 欧美aa在线观看| 国产一区国产二区国产三区| 国产极品久久久久久久久波多结野 | 亚洲成人不卡| 日韩高清中文字幕一区二区| 蜜桃av一区二区三区电影| 欧美高清不卡| 人人精品人人爱| 日韩国产一区二| 国产成人久久精品一区二区三区| 精品视频一区二区三区在线观看| 国产亚洲电影| 免费视频一区二区三区在线观看| 国产欧美日韩一区二区三区四区| 久久99精品久久久野外观看| 美女性感视频久久| 久久免费黄色| 亚洲丝袜啪啪| 久久午夜精品| 国产探花一区| 国产在视频一区二区三区吞精| 欧美黑人做爰爽爽爽| 国产精品伦理久久久久久| 亚洲一级在线| 日韩激情中文字幕| 久久免费精品| 丝袜国产日韩另类美女| 四虎精品永久免费| 久久精品系列| 噜噜噜久久亚洲精品国产品小说| 日韩高清不卡一区| 久久婷婷av| 国产欧洲在线| 性色av一区二区怡红| 欧美精品97| 综合国产在线| 999国产精品| 青青草伊人久久| 视频一区中文| 日韩国产高清在线| 福利在线免费视频| 日本久久二区| 136国产福利精品导航网址| 国产日韩欧美| 欧美国产先锋| 日韩高清一区二区| 亚洲免费播放| a国产在线视频| 一区在线免费观看| 国产精品a级| 91大神在线观看线路一区| 亚洲欧美日本视频在线观看| 国产va免费精品观看精品视频| 亚洲欧美日本视频在线观看| 91综合网人人| 国产情侣一区| 日韩精彩视频在线观看| 国产精品色网| 久久久成人网| 精品一二三区| 国产成人精品999在线观看| 国产精品永久| 日韩美女国产精品| 久久久久国产精品一区二区| 欧美激情在线精品一区二区三区| 欧美在线看片| 欧美一级二级三级视频| 丝袜美腿成人在线| 蜜臀久久99精品久久久久宅男|