爬蟲基礎-2-爬取招聘資訊
小生部落格:http://xsboke.blog.51cto.com
-------謝謝您的參考,如有疑問,歡迎交流
注意:BOSS應該是做了防爬蟲的功能,好像是如果頻繁訪問,就需要輸入一下驗證碼.
為了節省時間,當前只爬取了熱門城市的python相關職位資訊
程式碼如下:
from bs4 import BeautifulSoup import requests,re,sys sys.setrecursionlimit(10000) Init_Url = 'https://www.zhipin.com' Index_Url = 'https://www.zhipin.com/job_detail/?query=python' h = {'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.67 Safari/537.36'} r = requests.get(Index_Url,headers=h) r.encoding = 'utf-8' content = r.text soup = BeautifulSoup(content,features='html.parser') so_tag = soup.find('dd',class_='city-wrapper') Areas_tag = so_tag.find_all(href=re.compile("^/c"),text=re.compile("[^全國]")) for Area in Areas_tag: HREF = Area['href'] KA = Area['ka'] AreaName = Area.text NextPage = Init_Url + '/' + HREF arg = {'query': 'python','ka':KA} def Make(NURL,HEAD,PAR): r2 = requests.get(NURL,headers=HEAD,params=PAR) r2.encoding = 'utf-8' content2 = r2.text soup2 = BeautifulSoup(content2,features='html.parser') so2 = soup2.find('div',class_='job-list') so2_tags = so2.find_all('li') for so2_tag in so2_tags: List = [] Job_Type = so2_tag.find('div',class_="info-primary").h3.find('div',class_='job-title').get_text() # 招聘職位 Compensation = so2_tag.find('div',class_="info-primary").h3.find('span',class_='red').get_text() # 薪資 CompanyAddress = so2_tag.find('div',class_="info-primary").p.get_text("|").split('|')[0] # 公司地址 WorkTime = so2_tag.find('div',class_="info-primary").p.get_text("|").split('|')[1] # 工作年限 Education = so2_tag.find('div',class_="info-primary").p.get_text("|").split('|')[2] # 學歷 CompanyName = so2_tag.find('div',class_="info-company").find('div',class_='company-text').h3.a.get_text() # 公司名稱 List.extend([Job_Type,Compensation,CompanyAddress,WorkTime,Education,CompanyName]) CompanyInfo = so2_tag.find('div',class_="info-company").find('div',class_='company-text').p.get_text("|").split('|') if len(CompanyInfo) == 1: Trade = so2_tag.find('div', class_="info-company").find('div', class_='company-text').p.get_text("|").split('|')[0] # 公司行業 List.append(Trade) elif len(CompanyInfo) == 2: Trade = so2_tag.find('div', class_="info-company").find('div', class_='company-text').p.get_text("|").split('|')[0] # 公司行業 CompanyStage = so2_tag.find('div', class_="info-company").find('div', class_='company-text').p.get_text("|").split('|')[1] # 公司發展階段 List.extend([Trade,CompanyStage]) elif len(CompanyInfo) == 3: Trade = so2_tag.find('div', class_="info-company").find('div', class_='company-text').p.get_text("|").split('|')[0] # 公司行業 CompanyStage = so2_tag.find('div', class_="info-company").find('div', class_='company-text').p.get_text("|").split('|')[1] # 公司發展階段 CompanyScale = so2_tag.find('div', class_="info-company").find('div', class_='company-text').p.get_text("|").split('|')[2] # 公司規模 List.extend([Trade,CompanyStage,CompanyScale]) print('\t'.join(List)) # 判斷是否有下一頁 IFNextPage = so2.find('a',ka='page-next') if 'disabled' not in IFNextPage['class']: NextPage2 = Init_Url + IFNextPage['href'] arg2 = IFNextPage['ka'] print(NextPage2) Make(NURL=NextPage2, HEAD=h, PAR=arg2) Make(NURL=NextPage,HEAD=h,PAR=arg)
輸出如下:
python實習生 3k-4k 北京 海淀區 知春路 1年以內 學歷不限 中科院計算所 計算機軟體 未融資 100-499人
Python後端開發工程師 15k-30k 北京 海淀區 中關村 3-5年 本科 曠視科技 移動網際網路 C輪 1000-9999人
高階python研發工程師 20k-35k 北京 朝陽區 高碑店 3-5年 本科 掌閱科技 網際網路 已上市 500-999人
高階Python開發工程師 20k-40k 北京 海淀區 五道口 3-5年 本科 iHandy 移動網際網路 不需要融資 100-499人
Python開發工程師 12k-15k 北京 海淀區 五道口 1-3年 本科 阿凡題 移動網際網路 B輪 100-499人
高階Python研發工程師 30k-50k 北京 朝陽區 望京 5-10年 本科 更美app 網際網路 D輪及以上 100-499人
SDK後端python工程師 12k-24k 北京 朝陽區 北苑 1-3年 本科 途遊遊戲 遊戲 B輪 100-499人
Python研發工程師 20k-40k 北京 朝陽區 朝陽路 3-5年 本科 LBE TECH 移動網際網路 C輪 100-499人
會運維的python工程師 10k-20k 北京 海淀區 知春路 3-5年 本科 數盟網路 企業服務 B輪 100-499人
Python 20k-40k 北京 海淀區 五道口 1年以內 本科 聯袂互動 網際網路 100-499人
python開發工程師 10k-15k 北京 海淀區 中關村 1-3年 本科 暗泉資訊 資訊保安 不需要融資 20-99人
高階python開發 25k-35k 北京 朝陽區 太陽宮 3-5年 本科 老虎集團 網際網路 C輪 100-499人
資深Python研發工程師 20k-35k 北京 海淀區 牡丹園 3-5年 本科 國雙科技 網際網路 已上市 1000-9999人
後端開發工程師(Python) 15k-30k 北京 海淀區 五道口 1-3年 本科 ×××軟體研究所 計算機軟體 不需要融資 1000-9999人
Python開發工程師 20k-35k 北京 海淀區 清華大學 3-5年 本科 春雨醫生 O2O C輪 100-499人
python開發工程師 15k-30k 北京 朝陽區 望京 3-5年 本科 第三石 電子商務 B輪 100-499人
Python開發工程師 15k-25k 北京 海淀區 上地 3-5年 本科 Palmax 移動網際網路 A輪 100-499人
高階Python開發工程師 30k-40k 北京 海淀區 馬連窪 5-10年 大專 廣聯達 計算機軟體 已上市 1000-9999人
python開發工程師 20k-40k 北京 東城區 東直門 經驗不限 本科 客知音 計算機軟體 A輪 20-99人
python 實習生 3k-4k 北京 昌平區 天通苑 經驗不限 本科 阿姨多多 電子商務 未融資 20-99人
高階爬蟲工程師(python/C++) 12k-24k 北京 海淀區 上地 經驗不限 大專 永信至誠 資訊保安 已上市 1000-9999人
python高階工程師 15k-30k 北京 海淀區 上地 經驗不限 學歷不限 廈門淵亭 計算機軟體 A輪 20-99人
高階python工程師 28k-50k 北京 朝陽區 朝外 經驗不限 本科 國美金控 網際網路金融 不需要融資 10000人以上
Python全棧開發 25k-35k 北京 海淀區 中關村 經驗不限 本科 鷗思邦 人力資源服務 20-99人
python量化交易 15k-20k 北京 朝陽區 朝外 經驗不限 學歷不限 通證科技 網際網路 B輪 20-99人
python開發工程師 15k-25k 北京 朝陽區 建國路 3-5年 本科 景星科技 網際網路 未融資 20-99人
python開發工程師 10k-15k 北京 海淀區 牡丹園 3-5年 大專 北京標軟 醫療健康 A輪 100-499人
Python開發工程師(演算法方向) 23k-45k 北京 大興區 3-5年 碩士 京東金融 網際網路 不需要融資 10000人以上