日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python 爬虫之爬取大街网(思路)

發布時間:2025/4/16 python 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python 爬虫之爬取大街网(思路) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

由于需要,本人需要對大街網招聘信息進行分析,故寫了個爬蟲進行爬取。這里我將記錄一下,本人爬取大街網的思路。

附:爬取得數據僅供自己分析所用,并未用作其它用途。 ?

附:本篇適合有一定 爬蟲基礎 crawler 觀看,有什么沒搞明白的,歡迎大家留言,或者私信博主。

?

首先,打開目標網址 www.dajie.com?,在職位搜索中 輸入所需職業或關鍵信息 (我這演示的是 程序員),然后可得到新的鏈接地址?https://so.dajie.com/job/search?keyword=%E7%A8%8B%E5%BA%8F%E5%91%98&from=job

我們可以看到 ,數據的排序方式有2種,一種是 默認 ,一種是 時間 ,當你點擊的時候你可以看到 數據的排序方式發生了變化,但是網頁鏈接卻沒有變化,而且點擊 下一頁 的時候頁面的鏈接也沒有發生變化,其原因是 當你對其操作時,它通過

JS獲取ajax數據進行變換填充,所以如果你要獲取所需數據,你只能通過獲取其ajax數據。(當然還有模擬JS渲染,得到頁面,我沒有嘗試過,這里也不做多述)

?

那么如何獲取到其數據呢?

當你單擊 下一頁 等操作時,通過抓包(XHR中)可以查看到ajax數據的來源,查看的時候可以看到其返回的是200(所需的數據),但當你在新的頁面打開時,卻發現返回的是299,不是你想要的結果。如一下這個鏈接就是對其進行時間排序所得

的ajax(https://so.dajie.com/job/ajax/search/filter?keyword=%E7%A8%8B%E5%BA%8F%E5%91%98&order=1&city=&recruitType=&salary=&experience=&page=1&positionFunction=&_CSRFToken=&ajax=1)

但是如果你是單獨打開它的時候,它返回的是一個錯誤的頁面,這應該是 大街網 反爬蟲的一種手段。 ?

?

找到了返回的ajax地址鏈接,我們該如何正確的打開這個鏈接呢?

當我們打開這個 鏈接時(https://so.dajie.com/job/search?keyword=%E7%A8%8B%E5%BA%8F%E5%91%98&from=job)會發現服務器端回返回一個 Cookie

因此 當你訪問?(https://so.dajie.com/job/ajax/search/filter?keyword=%E7%A8%8B%E5%BA%8F%E5%91%98&order=1&city=&recruitType=&salary=&experience=&page=1&positionFunction=&_CSRFToken=&ajax=1)

鏈接時,你必須要傳入服務器返回的cookie 才能夠獲取到正確的結果。

?

下面附上本人寫的代碼,僅供參考。

其中需要注意的是:這些代碼僅提供一個思路,里面的很多變量、類都是我項目里面的。

這里統一做一下解釋

#from myproject.dajie import Jobs, IpAgentPool 指引入 Ip 池,Jobs所需要爬取得 關鍵字集合.(下面演示時用不到的)
#from myproject import agentPool          引入 Agent池, 用作偽裝瀏覽器使用

1 from myproject.dajie import Jobs, IpAgentPool 2 from myproject import agentPool 3 import http.cookiejar 4 import urllib.request 5 import urllib.parse 6 import random 7 import re 8 #import pymssql 9 10 class dj(): 11 12 def __init__(self): 13 # -----BASEURL 為目標網站的URL 14 # -----ToSearchJob 為需要搜尋的工作 15 # -----Agent 為Agent池,用于偽裝瀏覽器 16 # -----opener 為自己建造的一個opener,配合cookiejar可用于存儲cookies 17 def Myopener(self): 18 cookie = http.cookiejar.CookieJar() 19 return urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cookie)) 20 21 self.BASEURL = "https://www.dajie.com/" 22 # self.ToSearchJob=Jobs.TheJobNeedToSearch 23 self.AgentPool = agentPool.userAgent 24 self.IpPool = IpAgentPool.ipPool 25 26 self.opener = Myopener(self=self) 27 28 pass 29 30 def getContext(self): 31 url="https://so.dajie.com/job/search?keyword=%E7%A8%8B%E5%BA%8F%E5%91%98&from=job" 32 33 header=\ 34 { 35 "User-Agent":agentPool.userAgent[int(random.random()*4)], 36 "Referer":"https://so.dajie.com/job/search?keyword=%E7%A8%8B%E5%BA%8F%E5%91%98&from=job" 37 } 38 39 head=[] 40 41 for key,value in header.items(): 42 head.append((key,value)) 43 44 self.opener.addheaders=head 45 46 #session_cookie用于保存服務器返回的cookie,并將其保存 47 # 48 #其實只需要保存 session_cookie["SO_COOKIE_V2"] 即可,其余的是多余的。服務器在進行驗證的時候,只會驗證 SO_COOKIE_V2 49 # 50 session_cookie={} 51 session=self.opener.open("https://so.dajie.com/job/search?keyword=%E7%A8%8B%E5%BA%8F%E5%91%98&from=job") 52 print((session.info())) 53 54 session_cookie["DJ_RF"]= re.findall(r"DJ_RF=.+?;",str(session.info()))[0].split("=")[1] 55 session_cookie["DJ_EU"]=re.findall(r"DJ_EU=.+?;",str(session.info()))[0].split("=")[1] 56 session_cookie["DJ_UVID"] = re.findall(r"DJ_UVID=.+?;", str(session.info()))[0].split("=")[1] 57 session_cookie["SO_COOKIE_V2"] = re.findall(r"SO_COOKIE_V2=.+?;", str(session.info()))[0].split("=")[1] 58 59 #data 包含的是所需要傳入的 cookie 60 data=\ 61 { 62 "DJ_RF":session_cookie["DJ_RF"].strip(";"), 63 "DJ_EU":session_cookie["DJ_EU"].strip(";"), 64 "DJ_UVID":session_cookie["DJ_UVID"].strip(";"), 65 "SO_COOKIE_V2":session_cookie["SO_COOKIE_V2"].strip(";"), 66 "__login_tips":1, 67 } 68 #將 數據解析為傳入數據的格式 69 _data=urllib.parse.urlencode(data,"utf-8") 70 print("______________") 71 print(_data) 72 # 73 #_url 指的是ajax的鏈接地址 74 _url="https://so.dajie.com/job/ajax/search/filter?keyword=%E7%A8%8B%E5%BA%8F%E5%91%98&order=1&city=&recruitType=&salary=&experience=&page=1&positionFunction=&_CSRFToken=&ajax=1" 75 req=self.opener.open(_url,data=_data.encode("utf-8")) 76 77 print("-----------------") 78 print(req.read().decode("utf-8")) 79 80 #print(req.read().decode("utf-8")) 81 82 83 84 if __name__=="__main__": 85 _dj=dj() 86 _dj.getContext() View Code

最后附上運行結果的截圖

                     

?

轉載于:https://www.cnblogs.com/one-lightyear/p/6833545.html

總結

以上是生活随笔為你收集整理的python 爬虫之爬取大街网(思路)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 人人射av | 日本视频免费在线播放 | 色综合天天综合网天天看片 | 亚洲美女综合 | 91丝袜呻吟高潮美腿白嫩在线观看 | 国产一区二区视频在线免费观看 | 色七七在线 | 羞羞的视频在线观看 | 国内三级在线 | 欧美美女黄色 | 亚洲一区二区免费电影 | 国产精品va在线观看无码 | 狠狠久久综合 | 成人免费一级 | 欧美成人久久久 | 中文字幕一区二区三区精华液 | 天天尻逼 | 粉嫩小箩莉奶水四溅在线观看 | 夜夜操影院 | 99久久精品免费看国产交换 | 99香蕉视频| 在线成人播放 | 人人艹人人 | 麻豆视频免费入口 | 日本在线成人 | 国产欧美激情视频 | 亚洲一区二区三区免费 | 精品少妇久久久久久888优播 | 亚洲精品国产精品国自产观看 | 黄色录像a级片 | 色男人影院 | 日韩av资源网 | 羞羞影院体验区 | 欧美日韩一区二区三区 | 婷婷激情在线 | 成人小视频免费在线观看 | 日本精品在线看 | 精品在线视频一区二区三区 | 97精品一区二区三区 | 人人爽久久涩噜噜噜网站 | 精品久久久久久久免费人妻 | 欧美日韩免费观看视频 | 九九激情视频 | 在线观看岛国av | 国产v综合v亚洲欧美久久 | 日韩高清一区 | 又黄又湿的网站 | 激情黄色av | 成人免费毛片入口 | 欧美日韩免费在线观看 | 377p粉嫩大胆色噜噜噜 | av一本二本| 精品视频在线观看一区二区 | 看全色黄大色黄大片女一次牛 | 痴女扩张宫交脱垂重口小说 | 国产伦精品一区二区三区四区免费 | 久久视频中文字幕 | 亚瑟av在线 | 国产 日韩 欧美 制服丝袜 | 国产成人综合久久 | 中文字幕在线观看你懂的 | 九九热综合| 精品一区二区三区欧美 | 成人免费在线网站 | 最新中文字幕在线 | 好吊操精品视频 | 国产一级影院 | 亚洲天堂成人av | 射进来av影视网 | 91女人18毛片水多国产 | 亚洲天堂美女视频 | 亚洲小说区图片区都市 | 亚洲91av| 欧美视频精品在线 | 97一级片| 国产无套粉嫩白浆内谢 | 色妺妺视频网 | 久久久国产片 | 国产一级特黄 | 欧美老肥妇做.爰bbww视频 | 精品黑人一区二区三区在线观看 | 女同性做爰全过程 | 先锋影音av资源网站 | 五月天黄色网 | 国模吧一区二区三区 | 色欲久久久天天天综合网 | 亚洲视频一二区 | 国产视频九色蝌蚪 | japanese强行粗暴 | 成人动漫一区 | 超碰牛牛 | 亚洲大片免费 | 撸久久| 国产精品永久在线 | 日韩欧美一区二区免费 | 香蕉在线视频播放 | 国产91在线精品 | 午夜影院男女 | 日韩小视频在线 |