詳解如何使用Python網絡爬蟲獲取招聘信息
前言
現在在疫情階段,想找一份不錯的工作變得更為困難,很多人會選擇去網上看招聘信息。可是招聘信息有一些是錯綜復雜的。而且不能把全部的信息全部羅列出來,以外賣的58招聘網站來看,資料整理的不清晰。
項目目標
獲取招聘信息,並批量把地點、 公司名、工資 、下載保存在txt文檔。
項目準備
軟件:PyCharm
需要的庫:requests、lxml、fake_useragent
網站如下:
https://gz.58.com/job/pn2/?param7503=1&from=yjz2_zhaopin&PGTID=0d302408-0000-3efd-48f6-ff64d26b4b1c&ClickID={}
點擊下一頁時,ClickID={}每增加一頁自增加1,用{}代替變換的變量,再用for循環遍歷這網址,實現多個網址請求。
反爬措施
該網站上的反爬主要有兩點:
1、 直接使用requests庫,在不設置任何header的情況下,網站直接不返回數據
2、同一個ip連續訪問多次,直接封掉ip,起初我的ip就是這樣被封掉的。
為瞭解決這兩個問題,最後經過研究,使用以下方法,可以有效解決。
1、獲取正常的 http請求頭,並在requests請求時設置這些常規的http請求頭。
2、使用 fake_useragent ,產生隨機的UserAgent進行訪問。
項目實現
1、定義一個class類繼承object,定義init方法繼承self,主函數main繼承self。導入需要的庫和網址,代碼如下所示。
import requests from lxml import etree from fake_useragent import UserAgent class Zhaopin(object): def __init__(self): self.url = "https://gz.58.com/job/pn2/?param7503=1&from=yjz2_zhaopin&PGTID=0d302408-0000-3efd-48f6-ff64d26b4b1c&ClickID={}" # /zhuanchang/:搜索的名字的拼音縮寫 def main(self): pass if __name__ == '__main__': Spider = Zhaopin() Spider.main()
2、隨機產生UserAgent。
for i in range(1, 50): self.headers = { 'User-Agent': ua.random, }
3、發送請求,獲取響應, 頁面回調,方便下次請求
def get_page(self, url): res = requests.get(url=url, headers=self.headers) html = res.content.decode("utf-8") return html
4、xpath解析找到對應的父節點。
def page_page(self, html): parse_html = etree.HTML(html) one = parse_html.xpath('//div[@class="main clearfix"]//div[@class="leftCon"]/ul/li')
5、for遍歷,定義一個變量food_info保存,獲取到二級頁面對應的菜 名、 原 料 、下 載 鏈 接
for l in one: o = l.xpath('.//a/span[1]/text()')[0].strip() t = l.xpath('.//a//span[@class="name"]/text()')[0].strip() f = l.xpath('.//p[@class="job_salary"]/text()') thr = l.xpath('.//div[@class="comp_name"]//a/text()')[0].strip() for e in f: boss = ''' %s:||%s: 公司:%s, 工資:%s元/月 ========================================================= ''' % (o, t, thr, e) print(str(boss)
6、將結果保存在txt文檔中,如下所示。
f = open('g.txt', 'a', encoding='utf-8') # 以'w'方式打開文件 f.write(str(boss)) # print(house_dict) f.write("\n") # 鍵和值分行放,鍵在單數行,值在雙數行 f.close()
7、調用方法,實現功能。
html = self.get_page(url) self.page_page(html)
效果展示
1、點擊綠色小三角運行輸入起始頁,終止頁。
2、運行程序後,結果顯示在控制臺,如下圖所示。
3、保存txt文檔到本地,如下圖所示。
4、雙擊文件,內容如下圖所示。
小結
1、不建議抓取太多數據,容易對服務器造成負載,淺嘗輒止即可。
2、本文章就Python爬取招聘網,在應用中出現的難點和重點,以及如何防止反爬,做出瞭相對於的解決方案。
3、介紹瞭如何去拼接字符串,以及列表如何進行類型的轉換。
4、代碼很簡單,希望能夠幫到你。
5、歡迎大傢積極嘗試,有時候看到別人實現起來很簡單,但是到自己動手實現的時候,總會有各種各樣的問題,切勿眼高手低,勤動手,才可以理解的更加深刻。
6、可以選擇自己喜歡的分類,獲取工作,找到自己喜歡工作。
以上就是詳解如何使用Python網絡爬蟲獲取招聘信息的詳細內容,更多關於Python爬蟲獲取招聘信息的資料請關註WalkonNet其它相關文章!