-
當(dāng)前位置:首頁 > 創(chuàng)意學(xué)院 > 短視頻 > 專題列表 > 正文
爬蟲爬取付費(fèi)資源(爬蟲能爬付費(fèi)資源)
大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關(guān)于爬蟲爬取付費(fèi)資源的問題,以下是小編對(duì)此問題的歸納整理,讓我們一起來看看吧。
本文目錄:
一、python 爬蟲 ip池怎么做
Python爬蟲采集信息都是采用IP進(jìn)行更改,不然就不能快速的爬取信息,可以加入采用這類方式,就失去了快速抓取的意義。
所以,如果要大批量的抓取信息,就不能避免的使用IP池,針對(duì)Python爬蟲使用的IP池,是如何搭建起來的呢?接下來和大家說明一下如何建爬蟲IP池的問題。
第一步:找IP資源
IP資源并不豐富,換句話說是供不應(yīng)求的,因此一般是使用動(dòng)態(tài)IP。
免費(fèi)方法,直接在網(wǎng)絡(luò)上找,在搜索引擎中一搜索特別多能夠提供IP資源的網(wǎng)站,進(jìn)行采集即可。
付費(fèi)方法,通過購買芝麻代理上的IP資源,并進(jìn)行提取,搭建IP池。
第二步,檢測可用IP保存
提取到的IP,可以進(jìn)一步進(jìn)行檢測是否可用,比如訪問某個(gè)固定的網(wǎng)站,找出訪問成功的IP進(jìn)行保存。
第三步,隨機(jī)調(diào)用IP
在爬蟲需要使用IP時(shí),可用讀取保存IP的文件,進(jìn)行隨機(jī)調(diào)用IP。
本文介紹了如何建爬蟲的IP池方法,可以說搭建IP池很容易,可有些IP的時(shí)效性很短,使用之前還可以再測試一次的。如果考慮免費(fèi)IP,那么對(duì)于IP的效果性要做好心理準(zhǔn)備的。
二、有哪些網(wǎng)站用爬蟲爬取能得到很有價(jià)值的數(shù)據(jù)
一般有一下幾種
一些常用的方法
IP代理
對(duì)于IP代理,各個(gè)語言的Native Request API都提供的IP代理響應(yīng)的API, 需要解決的主要就是IP源的問題了.
網(wǎng)絡(luò)上有廉價(jià)的代理IP(1元4000個(gè)左右), 我做過簡單的測試, 100個(gè)IP中, 平均可用的在40-60左右, 訪問延遲均在200以上.
網(wǎng)絡(luò)有高質(zhì)量的代理IP出售, 前提是你有渠道.
因?yàn)槭褂肐P代理后, 延遲加大, 失敗率提高, 所以可以將爬蟲框架中將請(qǐng)求設(shè)計(jì)為異步, 將請(qǐng)求任務(wù)加入請(qǐng)求隊(duì)列(RabbitMQ,Kafka,Redis), 調(diào)用成功后再進(jìn)行回調(diào)處理, 失敗則重新加入隊(duì)列. 每次請(qǐng)求都從IP池中取IP, 如果請(qǐng)求失敗則從IP池中刪除該失效的IP.
Cookies
有一些網(wǎng)站是基于cookies做反爬蟲, 這個(gè)基本上就是如 @朱添一 所說的, 維護(hù)一套Cookies池
注意研究下目標(biāo)網(wǎng)站的cookies過期事件, 可以模擬瀏覽器, 定時(shí)生成cookies
限速訪問
像開多線程,循環(huán)無休眠的的暴力爬取數(shù)據(jù), 那真是分分鐘被封IP的事, 限速訪問實(shí)現(xiàn)起來也挺簡單(用任務(wù)隊(duì)列實(shí)現(xiàn)), 效率問題也不用擔(dān)心, 一般結(jié)合IP代理已經(jīng)可以很快地實(shí)現(xiàn)爬去目標(biāo)內(nèi)容.
一些坑
大批量爬取目標(biāo)網(wǎng)站的內(nèi)容后, 難免碰到紅線觸發(fā)對(duì)方的反爬蟲機(jī)制. 所以適當(dāng)?shù)母婢崾九老x失效是很有必有的.
一般被反爬蟲后, 請(qǐng)求返回的HttpCode為403的失敗頁面, 有些網(wǎng)站還會(huì)返回輸入驗(yàn)證碼(如豆瓣), 所以檢測到403調(diào)用失敗, 就發(fā)送報(bào)警, 可以結(jié)合一些監(jiān)控框架, 如Metrics等, 設(shè)置短時(shí)間內(nèi), 告警到達(dá)一定閥值后, 給你發(fā)郵件,短信等.
當(dāng)然, 單純的檢測403錯(cuò)誤并不能解決所有情況. 有一些網(wǎng)站比較奇葩, 反爬蟲后返回的頁面仍然是200的(如去哪兒), 這時(shí)候往往爬蟲任務(wù)會(huì)進(jìn)入解析階段, 解析失敗是必然的. 應(yīng)對(duì)這些辦法, 也只能在解析失敗的時(shí)候, 發(fā)送報(bào)警, 當(dāng)告警短時(shí)間到達(dá)一定閥值, 再觸發(fā)通知事件.
當(dāng)然這個(gè)解決部分并不完美, 因?yàn)橛袝r(shí)候, 因?yàn)榫W(wǎng)站結(jié)構(gòu)改變, 而導(dǎo)致解析失敗, 同樣回觸發(fā)告警. 而你并不能很簡單地區(qū)分, 告警是由于哪個(gè)原因引起的.
三、網(wǎng)絡(luò)爬蟲
1 爬蟲技術(shù)研究綜述 引言? 隨著網(wǎng)絡(luò)的迅速發(fā)展,萬維網(wǎng)成為大量信息的載體,如何有效地提取并利用這些信息成為一個(gè)巨大的挑戰(zhàn)。搜索引擎(Search Engine),例如傳統(tǒng)的通用搜索引擎AltaVista,Yahoo!和Google等,作為一個(gè)輔助人們檢索信息的工具成為用戶訪問萬維網(wǎng)的入口和指南。但是,這些通用性搜索引擎也存在著一定的局限性,如:? (1) 不同領(lǐng)域、不同背景的用戶往往具有不同的檢索目的和需求,通用搜索引擎所返回的結(jié)果包含大量用戶不關(guān)心的網(wǎng)頁。? (2) 通用搜索引擎的目標(biāo)是盡可能大的網(wǎng)絡(luò)覆蓋率,有限的搜索引擎服務(wù)器資源與無限的網(wǎng)絡(luò)數(shù)據(jù)資源之間的矛盾將進(jìn)一步加深。? (3) 萬維網(wǎng)數(shù)據(jù)形式的豐富和網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,圖片、數(shù)據(jù)庫、音頻/視頻多媒體等不同數(shù)據(jù)大量出現(xiàn),通用搜索引擎往往對(duì)這些信息含量密集且具有一定結(jié)構(gòu)的數(shù)據(jù)無能為力,不能很好地發(fā)現(xiàn)和獲取。? (4) 通用搜索引擎大多提供基于關(guān)鍵字的檢索,難以支持根據(jù)語義信息提出的查詢。? 為了解決上述問題,定向抓取相關(guān)網(wǎng)頁資源的聚焦爬蟲應(yīng)運(yùn)而生。聚焦爬蟲是一個(gè)自動(dòng)下載網(wǎng)頁的程序,它根據(jù)既定的抓取目標(biāo),有選擇的訪問萬維網(wǎng)上的網(wǎng)頁與相關(guān)的鏈接,獲取所需要的信息。與通用爬蟲(general?purpose web crawler)不同,聚焦爬蟲并不追求大的覆蓋,而將目標(biāo)定為抓取與某一特定主題內(nèi)容相關(guān)的網(wǎng)頁,為面向主題的用戶查詢準(zhǔn)備數(shù)據(jù)資源。? 1 聚焦爬蟲工作原理及關(guān)鍵技術(shù)概述? 網(wǎng)絡(luò)爬蟲是一個(gè)自動(dòng)提取網(wǎng)頁的程序,它為搜索引擎從萬維網(wǎng)上下載網(wǎng)頁,是搜索引擎的重要組成。傳統(tǒng)爬蟲從一個(gè)或若干初始網(wǎng)頁的URL開始,獲得初始網(wǎng)頁上的URL,在抓取網(wǎng)頁的過程中,不斷從當(dāng)前頁面上抽取新的URL放入隊(duì)列,直到滿足系統(tǒng)的一定停止條件,如圖1(a)流程圖所示。聚焦爬蟲的工作流程較為復(fù)雜,需要根據(jù)一定的網(wǎng)頁分析算法過濾與主題無關(guān)的鏈接,保留有用的鏈接并將其放入等待抓取的URL隊(duì)列。然后,它將根據(jù)一定的搜索策略從隊(duì)列中選擇下一步要抓取的網(wǎng)頁URL,并重復(fù)上述過程,直到達(dá)到系統(tǒng)的某一條件時(shí)停止,如圖1(b)所示。另外,所有被爬蟲抓取的網(wǎng)頁將會(huì)被系統(tǒng)存貯,進(jìn)行一定的分析、過濾,并建立索引,以便之后的查詢和檢索;對(duì)于聚焦爬蟲來說,這一過程所得到的分析結(jié)果還可能對(duì)以后的抓取過程給出反饋和指導(dǎo)。? 相對(duì)于通用網(wǎng)絡(luò)爬蟲,聚焦爬蟲還需要解決三個(gè)主要問題:? (1) 對(duì)抓取目標(biāo)的描述或定義;? (2) 對(duì)網(wǎng)頁%B
四、15《Python 原生爬蟲教程》爬蟲和反爬蟲
有的時(shí)候,當(dāng)我們的爬蟲程序完成了,并且在本地測試也沒有問題,爬取了一段時(shí)間之后突然就發(fā)現(xiàn)報(bào)錯(cuò)無法抓取頁面內(nèi)容了。這個(gè)時(shí)候,我們很有可能是遇到了網(wǎng)站的反爬蟲攔截。
我們知道,網(wǎng)站一方面想要爬蟲爬取網(wǎng)站,比如讓搜索引擎爬蟲去爬取網(wǎng)站的內(nèi)容,來增加網(wǎng)站的搜索排名。另一方面,由于網(wǎng)站的服務(wù)器資源有限,過多的非真實(shí)的用戶對(duì)網(wǎng)站的大量訪問,會(huì)增加運(yùn)營成本和服務(wù)器負(fù)擔(dān)。
這是一種最基本的反爬蟲方式,網(wǎng)站運(yùn)營者通過驗(yàn)證爬蟲的請(qǐng)求頭的 User-agent,accep-enconding 等信息來驗(yàn)證請(qǐng)求的發(fā)出宿主是不是真實(shí)的用戶常用瀏覽器或者一些特定的請(qǐng)求頭信息。
通過 Ajax,或 者javascript 來動(dòng)態(tài)獲取和加載數(shù)據(jù),加大爬蟲直接獲取數(shù)據(jù)的難度。
這個(gè)相信大多數(shù)讀者非常熟悉了吧,當(dāng)我們輸錯(cuò)多次密碼的時(shí)候,很多平臺(tái)都會(huì)彈出各種二維碼讓我們識(shí)別,或者搶火車票的時(shí)候,會(huì)出現(xiàn)各種復(fù)雜的驗(yàn)證碼,驗(yàn)證碼是反爬蟲措施中,運(yùn)用最廣,同時(shí)也是最有效直接的方式來阻止爬蟲的措施之一。
在識(shí)別到某些異常的訪問的時(shí)候,網(wǎng)站運(yùn)營者會(huì)設(shè)置一個(gè)黑名單,把一些判定為爬蟲的IP進(jìn)行限制或者封殺。
有些網(wǎng)站,沒有游客模式,只有通過注冊(cè)后才可以登錄看到內(nèi)容,這個(gè)就是典型的使用賬號(hào)限制網(wǎng)站,一般可以用在網(wǎng)站用戶量不多,數(shù)據(jù)安全要求嚴(yán)格的網(wǎng)站中。
我們可以在請(qǐng)求頭中替換我們的請(qǐng)求媒介,讓網(wǎng)站誤認(rèn)為是我們是通過移動(dòng)端的訪問,運(yùn)行下面的代碼后,當(dāng)我們打開 hupu.html,我們會(huì)發(fā)現(xiàn)返回的是移動(dòng)端的虎撲的頁面而不是網(wǎng)頁端的。
比如,我們可以設(shè)置一個(gè)隨機(jī)的間隔時(shí)間,來模擬用戶的行為,減少訪問的次數(shù)和頻率。 我們可以在我們爬蟲的程序中,加入如下的代碼,讓爬蟲休息3秒左右,再進(jìn)行爬取,可以有效地避開網(wǎng)站的對(duì)爬蟲的檢測和識(shí)別。
代理就是通過訪問第三方的機(jī)器,然后通過第三方機(jī)器的 IP 進(jìn)行訪問,來隱藏自己的真實(shí)IP地址。
由于第三方代理良莠不齊,而且不穩(wěn)定,經(jīng)常出現(xiàn)斷線的情況,爬取速度也會(huì)慢許多,如果對(duì)爬蟲質(zhì)量有嚴(yán)格要求的話,不建議使用此種方法進(jìn)行爬取。
可以通過動(dòng)態(tài)的 IP 撥號(hào)服務(wù)器來變換 IP,也可以通過 Tor 代理服務(wù)器來變換 IP。
反反爬蟲的策略,一直是在變換的,我們應(yīng)該具體問題具體分析,通過不斷的試錯(cuò)來完善我們的爬蟲爬取,千萬不要以為,爬蟲程序在本機(jī)調(diào)試之后,沒有問題,就可以高枕無憂了。線上的問題,總是千變?nèi)f化,我們需要根據(jù)我們的具體反爬措施,來針對(duì)的寫一些反反爬蟲的代碼,這樣才能保證線上環(huán)境的萬無一失。
以上就是關(guān)于爬蟲爬取付費(fèi)資源相關(guān)問題的回答。希望能幫到你,如有更多相關(guān)問題,您也可以聯(lián)系我們的客服進(jìn)行咨詢,客服也會(huì)為您講解更多精彩的知識(shí)和內(nèi)容。
推薦閱讀:
爬蟲抖音ID獲取手機(jī)號(hào)(怎么爬取抖音用戶手機(jī)號(hào))
錦州屋頂綠化景觀設(shè)計(jì)(錦州屋頂綠化景觀設(shè)計(jì)招標(biāo))
船外機(jī)排行榜(國產(chǎn)船外機(jī)排行榜)