亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術(shù)文章
文章詳情頁

cookies應(yīng)對python反爬蟲知識點(diǎn)詳解

瀏覽:102日期:2022-07-04 11:38:02

在保持合理的數(shù)據(jù)采集上,使用python爬蟲也并不是一件壞事情,因?yàn)樵谛畔⒌慕涣魃霞涌炝肆魍ǖ念l率。今天小編為大家?guī)砹艘粋€(gè)稍微復(fù)雜一點(diǎn)的應(yīng)對反爬蟲的方法,那就是我們自己構(gòu)造cookies。在開始正式的構(gòu)造之前,我們先進(jìn)行簡單的分析如果不構(gòu)造cookies爬蟲時(shí)會出現(xiàn)的一些情況,相信這樣更能體會出cookies的作用。

網(wǎng)站需要cookies才能正常返回,但是該網(wǎng)站的cookies過期很快,我總不能用瀏覽器開發(fā)者工具獲取cookies,然后讓程序跑一會兒,每隔幾分鐘再手動(dòng)獲取cookies,再讓程序繼續(xù)跑吧。如果反復(fù)這樣工作,那么寫爬蟲也就沒意義了。便開始對cookies進(jìn)行分析。

從瀏覽器的開發(fā)者工具獲取到的cookies大約有10個(gè)字段,經(jīng)過反復(fù)測試,能讓網(wǎng)站正常返回的只需要兩個(gè)字段,分別為__jsluid_h=011a522dbxxxxxxxxc1ce59d336e5e60和__jsl_clearance=1581880640.794|0|trTB4c6b%2BZpvxxxxxxxx8YqCOOo%3D (中間打碼處理)。

經(jīng)過測試,如果請求的時(shí)候不自己構(gòu)造cookies,默認(rèn)會返回__jsluid_h :

cookies應(yīng)對python反爬蟲知識點(diǎn)詳解

先嘗試了將那段js腳本保存下來,包裝成一個(gè)html文件打開,發(fā)現(xiàn)瀏覽器不停的刷新,也并沒起什么作用。那就分析一下js腳本,原來的代碼是單行的,自己整理一下并加了一些變量名和log,大概是這么個(gè)樣子:

cookies應(yīng)對python反爬蟲知識點(diǎn)詳解

將第16行的變量cmd打印出來看看,發(fā)現(xiàn)是另一段類似的腳本:

cookies應(yīng)對python反爬蟲知識點(diǎn)詳解

可以看到第二段腳本已經(jīng)開始設(shè)置cookies的__jsl_clearence 字段了。這些顯然就是混淆后的js腳本,但是分析到這里也就大概弄明白了從發(fā)送請求到網(wǎng)站返回是怎么回事。之所以在本地跑這段代碼會不斷刷新,是因?yàn)榈诙械膕etTimeout會讓其在1.5秒后重新請求,但是我們本地沒有服務(wù)處理請求讓其停止,所以會不斷的刷新。

而第一段腳本當(dāng)中,變量y是完整的js代碼 ,代碼中的變量名和關(guān)鍵字被進(jìn)行編碼了,變量x存儲的是用來替換的變量名和關(guān)鍵字,后面是解碼函數(shù)。所以現(xiàn)在的問題變成了獲取第一段腳本當(dāng)中的cmd代碼,執(zhí)行后再獲取第二段代碼的document.cookie的內(nèi)容即可。

可是對于python和js的交互我完全沒接觸過,嘗試了PyExecJS和Js2Py,都沒辦法正常執(zhí)行第一段腳本。無奈之下,我用python復(fù)現(xiàn)了第一段腳本,然后用Js2Py獲取了cookie。在請求一次過后,構(gòu)造cookies,再請求一次,就可以了:

def test(): url = REQUEST_URL # url = ’https://www.baidu.com’ request_header = get_header() html = requests.get(url, headers=request_header) print(html) jscode = html.text # print(jscode) # tryjs.get_cookies()為復(fù)現(xiàn)的js代碼,以及用Js2Py獲取cookies的代碼 request_cookies = try_js.get_cookies(jscode) request_cookies += ’;__jsluid_h=’ + html.cookies[’__jsluid_h’] request_header[’Cookie’] = request_cookies print(request_header) html = requests.get(url, headers=request_header, timeout=5) print(’new connection’) print(html) print(html.text)

在經(jīng)歷重重的分析試驗(yàn)后,我們終于得出以上的代碼成功實(shí)現(xiàn)了構(gòu)造cookies。相信經(jīng)過本篇的學(xué)習(xí),小伙伴們又多了一種解決爬蟲阻攔獲取數(shù)據(jù)的cookies辦法了,趕快行動(dòng)起來吧。

到此這篇關(guān)于cookies應(yīng)對python反爬蟲知識點(diǎn)詳解的文章就介紹到這了,更多相關(guān)如何構(gòu)造cookies應(yīng)對python反爬蟲內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 九九国产在线视频 | 在线看黄免费 | 一级特黄aaa大片 | 制服丝袜手机在线 | 国产精品嫩草影院在线观看免费 | 2022日本卡一卡二新区 | zzijzzij亚洲日本护士 | bdsm中国精品调教 | 国内精品久久影视免费 | 国产精品国产欧美综合一区 | 久久中文字幕久久久久 | 亚洲日韩色综合视频 | 黄在线 | 美国毛片在线 | 中国的毛片 | 国产老头老太性视频 | 99久久国产免费 - 99久久国产免费 | 欧美a级v片在线观看一区 | 国产一级小视频 | 精品国产亚一区二区三区 | 日本欧美韩国专区 | 美国一级毛片片aa成人 | 泰国一级淫片免费看 | 国产日韩一区二区三区在线播放 | 妇女激情毛片 | 久久亚洲国产欧洲精品一 | 超91精品手机国产在线 | 欧美黑人巨大肥婆性视频 | 一区二区三区四区视频在线 | 诱人的女邻居bd中文字幕 | 日韩在线 中文字幕 | 99av在线 | 中国毛片免费看 | 国产大学生一级毛片绿象 | 日本人爽p大片免费看 | 国产成人精品免费视频大全办公室 | 欧美极品福利视频在线播放 | 免费网站在线观看高清版 | 日韩精品一区二区三区免费观看 | 男人狂躁女人下面视频免费看 | 久久精品国产一区二区三区不卡 |