一、爬蟲的簡單理解
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網路爬蟲視頻教程,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/53158.html
標籤:Python
