主要用到的庫:requests
1.原始url地址,https://www.lagou.com/jobs/list_python?labelWords=&fromSearch=true&suginput=。我們查看網頁源代碼,發現里面並沒有我們想要的職位信息,這是因為拉勾網有反爬蟲機制,它的職位信息是通過ajax動態加載的。
2.我們按下F12,找到network--在左側Name中找到:positionAjax.json?needAddtionalResult=false--,在右側找到response。
我們將顯示的json格式的內容放在http://www.bejson.com/jsonviewernew/進行格式化:
發現這正是我們想要的職位信息。
3.簡單爬蟲的構建
import requests #實際要爬取的url url = 'https://www.lagou.com/jobs/positionAjax.json?needAddtionalResult=false' payload = { 'first': 'true', 'pn': '1', 'kd': 'python', } header = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36', 'Referer': 'https://www.lagou.com/jobs/list_python?labelWords=&fromSearch=true&suginput=', 'Accept': 'application/json, text/javascript, */*; q=0.01' } #原始的url urls ='https://www.lagou.com/jobs/list_python?labelWords=&fromSearch=true&suginput=' #建立session s = requests.Session() # 獲取搜索頁的cookies s.get(urls, headers=header, timeout=3) # 為此次獲取的cookies cookie = s.cookies # 獲取此次文本 response = s.post(url, data=payload, headers=header, cookies=cookie, timeout=5).text print(response)
部分輸出如下: