Python爬蟲 : 3秒鐘爬取找工作信息


Python爬蟲 : 3秒鐘爬取找工作信息

文 | 智能小熊貓

4月6日,星期一,返京隔離還沒有結束。

朋友們得到我辭職的消息,都紛紛打來電話,有的幫忙介紹工作、有的幫忙聯繫各種資源,與此同時都帶來了極大的安慰和鼓勵,感覺非常暖心。

今天,開始靜下心來,在各大網站查找工作信息,內容繁雜,於是,用Python寫了一個爬蟲程序,自動彙總數據

寫程序,花費了我小半天的時間,但收穫頗豐:

一方面:練習了Requests和BeautifulSoup兩個第三方庫的使用;

另一方面:寫一次程序,日後可反覆使用,一勞永逸,也可以幫助有相關需要的朋友。


找工作的流程


step1

:登陸招聘信息的網站,如智聯招聘,獵聘網等;

step2:在網站搜索目標工作地點,以及相關的行業,如北京,數據分析師等;

step3:查詢招聘公司的簡介,以及招聘公司的“職責描述”和”任職要求“等;

step4:根據招聘公司的“職責描述”和”任職要求“,結合自身情況,投遞簡歷;

step5:等待面試通知,進行面試;


如何用python協助實現?


以獵聘網為例:

1.獲取指定網頁的頁面信息,使用requests庫,定義函數:

<code>def getHTMLText(url_given):
\t
\theaders = {"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:2.0.1) Gecko/20100101 Firefox/4.0.1"}


\ttry:
\t\tr = requests.get(url_given, headers=headers)
\t\tr.raise_for_status()
\t\tr.encoding = r.apparent_encoding
\t\treturn r.text
\texcept:
\t\treturn "Fail"/<code>

2.解析頁面信息,使用BeautifulSoup庫,定義函數:

<code>def parserHTMLCode(html_text):
\tdemo = BeautifulSoup(html_text, "html.parser")
\tul_list = demo.find("ul", attrs={"class": "sojob-list"})
\tli_tag = ul_list.find_all("li")

\tfor element in li_tag:
\t\th_list = element.find("h3").a["href"]
\t\tsalary = element.find("p")["title"]
\t\tsalary_list.append(salary)
\t\tti = element.find("h3")["title"]
\t\ttitle_list.append(ti)
\t\t
\t\tif h_list.startswith("https"):
\t\t\thref_list.append(h_list)
\t\telse:
\t\t\tnew_str = "https://www.liepin.com" + h_list
\t\t\thref_list.append(new_str)
\t\t
\t\tjob = element.find("div", attrs={"company-info nohover"})
\t\tcompany_info = job.a.text
\t\tcompany_list.append(company_info)
\t
\treturn href_list, title_list, salary_list, company_list/<code>

3.網站存在多頁信息,需要解決翻頁功能,定義翻頁函數:

<code>def dealUrl(page):
\turl_get = []
\tfor num in range(0, page):
\t\turl = r"https://www.liepin.com/zhaopin/?init=-1&headckid=c00" \\
\t\t\t r"fb8d61c58d6b5&dqs=010&fromSearchBtn=2&imscid=R000000" \\
\t\t\t r"035&ckid=c00fb8d61c58d6b5°radeFlag=0&key=%E6%95%B" \\
\t\t\t r"0%E6%8D%AE%E5%88%86%E6%9E%90%E5%B8%88&siTag=bFGQTbwE" \\
\t\t\t r"_AAQSb-u11jrBw%7EF5FSJAXvyHmQyODXqGxdVw&d_sfrom=sear" \\
\t\t\t r"ch_unknown&d_ckId=e566061f4abecebc9a03f333d060c554&d" \\

\t\t\t r"_curPage=0&d_pageSize=40&d_headId=e566061f4abecebc9a" \\
\t\t\t r"03f333d060c554&curPage="
\t\tuse_url = url + str(num)
\t\turl_get.append(use_url)
\treturn url_get/<code>

4. 為方便後續進行數據分析和統計處理,將得到的信息寫入csv文件,定義讀寫函數:

<code>def writeCSV(result):
\twith open("result.csv", "w", newline="") as f:
\t\twriter = csv.writer(f)
\t\tfor row in result:
\t\t\twriter.writerow(row)/<code>

5.引入包及全局變量定義:

<code>import requests
from bs4 import BeautifulSoup
import csv

PAGE = 10
href_list = []
title_list = []
salary_list = []
company_list = []
result_list = []/<code>

6. 程序入口,main()函數:

<code>if __name__ == "__main__":
\turl_list = dealUrl(PAGE)
\tfor url in url_list:
\t\tdemo = getHTMLText(url)
\t\thref, title, salary, company = parserHTMLCode(demo)
\t\tline_text = zip(title, company, salary, href, )
\tline_text_set = list(line_text)
\tfor info in line_text_set:
\t\tprint(info)
\twriteCSV(line_text_set)/<code>

運行結果:

其中,每行數據中各元素分別代表:

職位,招聘公司,薪資待遇及基本要求,職責描述和任職要求鏈接

<code>('招聘運營數據分析師', '跟誰學', '8-12k·12薪_北京_本科及以上_1年以上', 'https://www.liepin.com/job/1922041693.shtml')
('招聘運營數據分析師', '北京四方啟點科技有限公司', '18-22k·12薪_北京-白石橋_統招本科_5年以上', 'https://www.liepin.com/job/1921782245.shtml')
('招聘小米貸款數據分析師---產品團隊', '小米', '面議_北京-海淀區_統招本科_1年以上', 'https://www.liepin.com/job/1921622025.shtml')
('招聘數據分析師', '宸瑞科技北京', '10-15k·12薪_北京_本科及以上_3年以上', 'https://www.liepin.com/job/1921507001.shtml')
('招聘小米貸款高級數據分析師---產品團隊', '小米', '25-49k·12薪_北京-海淀區_本科及以上_5年以上', 'https://www.liepin.com/job/1921496011.shtml')
('招聘數據分析師', '國信優易數據有限公司', '15-25k·12薪_北京-豐臺區_統招本科_5年以上', 'https://www.liepin.com/job/1921236583.shtml')
('招聘信貸數據分析師(北京)', '小米', '15-29k·12薪_北京-海淀區_學歷不限_經驗不限', 'https://www.liepin.com/job/1920607009.shtml')
('招聘數據分析師', '望海康信', '18-25k·12薪_北京-廣渠門_本科及以上_5年以上', 'https://www.liepin.com/job/1920266867.shtml')
('招聘小米貸款數據分析師', '小米', '18-35k·12薪_北京_統招本科_3年以上', 'https://www.liepin.com/job/1919664627.shtml')
('招聘用戶增長數據分析師', '國內某著名上市公司社交平臺', '25-50k·14薪_北京_本科及以上_2年以上', 'https://www.liepin.com/a/19572377.shtml')
('招聘高級數據分析師', '知名上市互聯網公司', '30-60k·14薪_北京,上海,廣州_本科及以上_3年以上', 'https://www.liepin.com/a/19562293.shtml')
('招聘數據分析師', '國內top在線英語平臺', '40-60k·15薪_北京_統招本科_3年以上', 'https://www.liepin.com/a/19416377.shtml')/<code>

保存的csv文件:

Python爬蟲 : 3秒鐘爬取找工作信息

程序輸出CSV文件部分截圖

程序或有不夠完善之處,歡迎大家留言分享,提出寶貴建議!

程序源代碼有需要的可以私信我!


分享到:


相關文章: