一、爬蟲的簡單理解
1. 什么是爬蟲?
網絡爬蟲也叫網絡蜘蛛,如果把互聯網比喻成一個蜘蛛網,那么蜘蛛就是在網上爬來爬去的蜘蛛,爬蟲程序通過請求url地址,根據響應的內容進行解析采集數據, 比如:如果響應內容是html,分析dom結構,進行dom解析、或者正則匹配,如果響應內容是xml/json數據,就可以轉數據對象,然后對數據進行解析。
2. 爬蟲有什么作用?
通過有效的爬蟲手段批量采集數據,可以降低人工成本,提高有效數據量,給予運營/銷售的數據支撐,加快產品發展。
3. 爬蟲業界的情況
目前互聯網產品競爭激烈,業界大部分都會使用爬蟲技術對競品產品的數據進行挖掘、采集、大數據分析,這是必備手段,并且很多公司都設立了爬蟲工程師的崗位。
4. 合法性
爬蟲是利用程序進行批量爬取網頁上的公開信息,也就是前端顯示的數據信息。因為信息是完全公開的,所以是合法的。其實就像瀏覽器一樣,瀏覽器解析響應內容并渲染為頁面,而爬蟲解析響應內容采集想要的數據進行存儲。
5. 反爬蟲
爬蟲很難完全的制止,道高一尺魔高一丈,這是一場沒有硝煙的戰爭,碼農VS碼農
反爬蟲一些手段:
- 合法檢測:請求校驗(useragent,referer,接口加簽名,等)
- 小黑屋:IP/用戶限制請求頻率,或者直接攔截
- 投毒:反爬蟲高境界可以不用攔截,攔截是一時的,投毒返回虛假數據,可以誤導競品決策
二、通用爬蟲
根據使用場景,網絡爬蟲可分為 通用爬蟲和聚焦爬蟲 兩種.。
1、通用爬蟲
通用網絡爬蟲是捜索引擎(Baidu、Google、Yahoo)抓取系統的重要組成部分。主要?的是將互聯網上的內容下載到本地,形成整個互聯網內容的鏡像備份。
?絡爬蟲的基本?作流程如下:
- ?先選取?部分精?挑選的種?URL;
- 將這些 URL 放?待抓取 URL 隊列;
- 從待抓取 URL 隊列中取出待抓取在 URL,解析 DNS,并且得到主機的 ip,并將 URL 對應的??下載下來,存儲進已下載??庫中。此外,將 這些 URL 放進已抓取 URL 隊列。
- 分析已抓取 URL 隊列中的 URL,分析其中的其他 URL,并且將 URL放? 待抓取 URL 隊列,從?進?下?個循環....
2、通?搜索引擎(Search Engine)工作原理
隨著網絡的迅速發展,萬維網成為大量信息的載體,如何有效地提取并利用這些信息成為一個巨大的挑戰,通常用戶戶會通過搜索引擎(Yahoo,Google,百度等),來作為訪問萬維網的入口。
通用網絡爬蟲 是搜索引擎系統中十分重要的組成部分,它負責從互聯網中搜集信息,采集信息,這些搜集信息用于為搜索引擎建立索引從而提供支持,它決定著整個引擎系統的內容是否豐富,信息是否即時,因此其性能的優劣直接影響著搜索引擎的效果。
第?步:抓取??
搜索引擎通過?種有特定規律的軟件,來跟蹤??的鏈接,從?個鏈接爬到另外?個鏈接,像蜘蛛在蜘蛛?上爬??樣,所以被稱為“蜘蛛”也被稱為“機器?”。
但是搜索引擎蜘蛛的爬?是被輸?了?定的規則的,它需要遵從?些命令或?件的內容。
Robots 協議(也稱為爬蟲協議、機器?協議等)的全稱是“?絡爬蟲排除標準”(Robots Exclusion Protocol),?站通過 Robots 協議告訴搜索引擎哪些??可以抓取,哪些??不能抓取
https://www.taobao.com/robots...
http://www.qq.com/robots.txt
robots.txt 只是約定,爬蟲遵守或者不遵守完全在于爬蟲作者的意愿。舉個例?,公交?上貼著「請為?弱病殘孕讓座」,但是?部分?并不?得會遵守。?般來講,只有?的搜索引擎爬蟲會遵守你?站的 robots.txt 協議,其它的爬蟲基本都不會看?眼你的 robots.txt 寫的是什么。
第?步:數據存儲
搜索引擎是通過蜘蛛跟蹤鏈接爬?到??,并將爬?的數據存?原始??數據庫。其中的??數據與?戶瀏覽器得到的 HTML 是完全?樣的。搜索引擎蜘蛛在抓取??時,也做?定的重復內容檢測,?旦遇到權重很低的?站上有?量抄襲、采集或者復制的內容,很可能就不再爬?。
第三步:預處理
搜索引擎將蜘蛛抓取回來的??,進?各種步驟的預處理。
- 提取?字
- 中?分詞
- 去停?
- 詞
- 消除噪?(搜索引擎需要識別并消除這些噪聲,?如版權聲明?字、導 航條、?告等……)
- 正向索引
- 倒排索
- 引鏈接關系計算
- 特殊?件處理
- ....
除了 HTML組件外,搜索引擎通常還能抓取和索引以?字為基礎的多種?件類型,如 PDF、Word、WPS、XLS、PPT、TXT 組件等。我們在搜索結果中也經常會看到這些?件類型。
但搜索引擎還不能處理圖片、視頻、Flash 這類文字內容,也不能執?腳本和程序。
第四步:排名,提供檢索服務
搜索引擎是根據?定的策略、運?特定的計算機程序從互聯?上搜集信息,在對信息進?組織和處理后,為?戶提供檢索服務,將?戶檢索相關的信息展示給?戶的系統。
但是,這些通?性搜索引擎也存在著?定的局限性:
- 不同領域、不同背景的?戶往往具有不同的檢索?的和需求,通?搜索引擎所返回的結果包含?量?戶不關?的??。
- 通?搜索引擎的?標是盡可能?的?絡覆蓋率,有限的搜索引擎服務器資源與?限的?絡數據資源之間的?盾將進?步加深。
- 萬維?數據形式的豐富和?絡技術的不斷發展,圖?、數據庫、?頻、視頻多媒體等不同數據?量出現,通?搜索引擎往往對這些信息含量密集且具有?定結構的數據?能為?,不能很好地發現和獲取。
- 通?搜索引擎?多提供基于關鍵字的檢索,難以?持根據語義信息提出的查詢。
三、聚焦爬蟲(Focused Crawler)
- 聚焦爬蟲,也稱主題爬蟲(或專業爬蟲),是“?向特定主題”的?種?絡爬蟲程序。它與我們通常所說的爬蟲(通?爬蟲)的區別之處就在于,聚焦爬蟲在實施??抓取時要進?主題篩選。它盡量保證只抓取與主題相關的??信息。
- 聚焦?絡爬蟲并不追求?的覆蓋,?將?標定為抓取與某?特定主題內容相關的??,為?向主題的?戶查詢準備數據資源。
- 聚焦爬蟲的?作流程較為復雜,需要根據?定的??分析算法過濾與主題?關的鏈接,保留有?的鏈接并將其放?等待抓取的 URL 隊列。然后,它將根據?定的搜索策略從隊列中選擇下?步要抓取的??URL,并重復上述過程,直到達到系統的某?條件時停?。
- 另外,所有被爬蟲抓取的??將會被系統存貯,進??定的分析、過濾,并建?索引,以便之后的查詢和檢索;對于聚焦爬蟲來說,這?過程所得到的分析結果還可能對以后的抓取過程給出反饋和指導。
以上就是淺析python 通用爬蟲和聚焦爬蟲的詳細內容,更多關于python 爬蟲的資料請關注服務器之家其它相關文章!
原文鏈接:https://www.cnblogs.com/shsxt/p/13497444.html