python构造referer_Python爬虫小偏方:修改referer绕开登录和访问频率限制
看官們?cè)趯?xiě)爬蟲(chóng)程序時(shí)應(yīng)該都會(huì)遇到如下問(wèn)題:
你的爬蟲(chóng)程序開(kāi)發(fā)時(shí)能正常抓取網(wǎng)頁(yè),但是正式大量抓取時(shí),抓取的網(wǎng)站總是返回403或者500等;
你抓取的網(wǎng)站需要登錄,要花大量時(shí)間去研究網(wǎng)站登錄流程。
遇到問(wèn)題1,我們的第一反應(yīng)是達(dá)到對(duì)方訪(fǎng)問(wèn)頻率限制,IP被對(duì)方屏蔽了,然后就找更多IP和降低訪(fǎng)問(wèn)頻率。
遇到問(wèn)題2,就硬著頭皮研究對(duì)方加密方法,或人肉登錄后用機(jī)器把cookie保存下來(lái),耗去好幾天時(shí)間。
除了上述直接攻克的方法,還有一種取巧的方法可以繞過(guò)上述兩個(gè)問(wèn)題,就是修改http header中的referer來(lái)達(dá)到。注意這里是修改referer,不是修改user-agent。
我在網(wǎng)絡(luò)爬蟲(chóng)的原理和[爬蟲(chóng)分析利器:谷歌chrome瀏覽器中已經(jīng)介紹過(guò)http header和怎么使用chrome瀏覽器查看header信息了,還不太了解的可以再去復(fù)習(xí)一下這部分知識(shí),這里就只著簡(jiǎn)單科普一下referer是啥。
referer是告訴目標(biāo)服務(wù)器(訪(fǎng)問(wèn)的網(wǎng)站),你是從哪兒點(diǎn)擊進(jìn)入當(dāng)前頁(yè)面的。
比如你在百度搜索某個(gè)網(wǎng)站,然后點(diǎn)擊進(jìn)入網(wǎng)站,這個(gè)時(shí)候通過(guò)抓包工具可以觀察到,referer是類(lèi)似如下樣式:
當(dāng)你遇到上訴兩個(gè)問(wèn)題時(shí),你可以嘗試把referer改成上述截圖里的,是從搜索引擎點(diǎn)擊進(jìn)入的,你會(huì)發(fā)現(xiàn)有的網(wǎng)站,不會(huì)屏蔽從搜索引擎來(lái)的IP或者給這些IP的訪(fǎng)問(wèn)頻率放得較為寬松。 甚至有的網(wǎng)站內(nèi)容本來(lái)是要登陸才能看見(jiàn),但是你把referer改成是從百度來(lái)的,你會(huì)發(fā)現(xiàn)居然不用登錄也能看見(jiàn)了。
其實(shí)一句話(huà)就能說(shuō)完,寫(xiě)了這么一大篇,額。。。
這些網(wǎng)站為什么會(huì)厚此薄彼呢?
是有些網(wǎng)站想獲取SEO流量,就把從搜索引擎點(diǎn)擊進(jìn)入的訪(fǎng)問(wèn)控制放得較為寬松的原因。所以當(dāng)你遇到如上兩個(gè)問(wèn)題時(shí),先改一改referer試試,這樣可以節(jié)省你不少的研究時(shí)間。這適用于有的爬蟲(chóng)是個(gè)臨時(shí)任務(wù)或者一次性的爬蟲(chóng),不用長(zhǎng)期維護(hù),你快速寫(xiě)好抓完數(shù)據(jù)就好的時(shí)候適用。 這個(gè)不是每個(gè)網(wǎng)站都有這樣的待遇,在下遇到的有此情況的網(wǎng)站有某職業(yè)社交網(wǎng)站,某工商信息查詢(xún)網(wǎng)站,某娛樂(lè)票務(wù)網(wǎng)站,就醬
總結(jié)
以上是生活随笔為你收集整理的python构造referer_Python爬虫小偏方:修改referer绕开登录和访问频率限制的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: lisp6 暖通cad_(完整版)暖通C
- 下一篇: 前端跨域请求get_(单点登录)跨域SS