怎樣捅穿CloudFlare的5秒盾,很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來(lái)學(xué)習(xí)下,希望你能有所收獲。
創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、新蔡網(wǎng)絡(luò)推廣、小程序制作、新蔡網(wǎng)絡(luò)營(yíng)銷(xiāo)、新蔡企業(yè)策劃、新蔡品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供新蔡建站搭建服務(wù),24小時(shí)服務(wù)熱線:18982081108,官方網(wǎng)址:www.cdcxhl.com
經(jīng)常寫(xiě)爬蟲(chóng)的同學(xué),肯定知道 Cloud Flare 的五秒盾。當(dāng)你沒(méi)有使用正常的瀏覽器訪問(wèn)網(wǎng)站的時(shí)候,它會(huì)返回如下這段文字:
Checking your browser before accessing xxx.
This process is automatic. Your browser will redirect to your requested content shortly.
Please allow up to 5 seconds…
即使你把 Headers 帶完整,使用代理 IP,也會(huì)被它發(fā)現(xiàn)。我們來(lái)看一個(gè)例子。Mountain View Whisman students sent home after children test positive for COVID-19 [1] 這篇文章,使用正常瀏覽器訪問(wèn),效果如下圖所示:
直接查看原始的網(wǎng)頁(yè)源代碼,可以看到,新聞標(biāo)題和正文就在源代碼里面,說(shuō)明新聞的標(biāo)題和正文都是后端渲染的,不是異步加載。如下圖所示:
現(xiàn)在,我們使用 requests,帶上完整的請(qǐng)求頭來(lái)訪問(wèn)這個(gè)網(wǎng)站,效果如下圖所示:
網(wǎng)站識(shí)別到了爬蟲(chóng)行為,成功把爬蟲(chóng)請(qǐng)求擋住了。很多同學(xué)在這個(gè)時(shí)候就已經(jīng)束手無(wú)策了。因?yàn)檫@是爬蟲(chóng)的第一次請(qǐng)求就被擋住了,所以網(wǎng)站不是檢測(cè)的 IP 或者訪問(wèn)頻率,所以即使用代理 IP 也無(wú)濟(jì)于事。而現(xiàn)在即使帶上了完整的請(qǐng)求頭都能被發(fā)現(xiàn),那還有什么辦法繞過(guò)這個(gè)檢測(cè)呢?
實(shí)際上,要繞過(guò)這個(gè)5秒盾非常簡(jiǎn)單,只需要使用一個(gè)第三方庫(kù),叫做cloudscraper。我們可以使用pip來(lái)安裝:
python3 -m pip install cloudscraper
安裝完成以后,只需要使用3行代碼就能繞過(guò) Cloud Flare 的5秒盾:
import cloudscraper scraper = cloudscraper.create_scraper() resp = scraper.get('目標(biāo)網(wǎng)站').text
我們還是以上面的網(wǎng)站為例:
import cloudscraper from lxml.html import fromstring scraper = cloudscraper.create_scraper() resp = scraper.get('https://mv-voice.com/news/2021/05/04/mountain-view-whisman-students-sent-home-after-children-test-positive-for-covid-19').text selector = fromstring(resp) title = selector.xpath('//h2/text()')[0] print(title)
運(yùn)行效果如下圖所示:
破盾成功。
CloudScraper[2] 非常強(qiáng)大,它可以突破 Cloud Flare 免費(fèi)版各個(gè)版本的五秒盾。而且它的接口和 requests 保持一致。原來(lái)用 requests 怎么寫(xiě)代碼,現(xiàn)在只需要把requests.xxx改成scraper.xxx就可以了。
看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對(duì)創(chuàng)新互聯(lián)的支持。