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文件:
程序或有不夠完善之處,歡迎大家留言分享,提出寶貴建議!
程序源代碼有需要的可以私信我!
閱讀更多 智能小熊貓 的文章