爬蟲:就是抓取網頁數據的程序。搜索引擎的底層其實就是爬蟲。
百度百科:網絡爬蟲html
關於Python爬蟲,咱們須要學習的有:python
咱們先來考慮一個問題,移動互聯網時代已通過去了,你看如今IOS和安卓的行情,如今是大數據時代,那一直在說大數據大數據,那麼所謂的"大數據時代",數據獲取的方式有哪幾種?
百度搜、淘寶買這個是咱們一會兒能夠想到的方式,那麼咱們統計下都有哪些方式程序員
咱們平時經過瀏覽器打開的任意一個網頁,其實都有如下三大通用特徵ajax
網頁三大特徵:redis
爬蟲的設計思路:數據庫
首先要糾正下,不論是所謂的大數據分析仍是爬蟲其餘編程語言一樣能夠實現,如 PHP、Java、C/C++、Python等等..編程
那麼爲何咱們要選擇python來進行實現,咱們首先對比下這幾個語言json
根據使用場景:分爲 通用爬蟲 聚焦爬蟲瀏覽器
1、通用爬蟲:搜索引擎用的爬蟲系統。服務器
目標:就是儘量把互聯網上全部的網頁下載下來,放到本地服務器裏造成備份,再對這些網頁作相關處理(提取關鍵字、去掉廣告),最後提供一個用戶檢索接口
抓取流程:
1.首選選取一部分已有的URL,把這些URL放到待爬取隊列。
2.從隊列裏取出這些URL,而後解析DNS獲得主機IP,而後去這個IP對應的服務器裏下載HTML頁面,保存到搜索引擎的本地服務器。以後把這個爬過的URL放入已爬取隊列。
3.分析這些網頁內容,找出網頁裏其餘的URL鏈接,繼續執行第二步,直到爬取條件結束。
搜索引擎如何獲取一個新網站的URL
1.主動向搜索引擎提交網址:(如百度http://zhanzhang.baidu.com/li...)
2.在其餘網站裏設置網站的外鏈。
3.搜索引擎會和DNS服務商進行合做,能夠快速收錄新的網站。(DNS:就是把域名解析成IP的一種技術。)
好比你在cmd pin www.baidu.com就會獲得百度的IP,直接在瀏覽器裏面輸入IP通用能夠訪問到百度
通用爬蟲並非萬物皆可爬,它也須要遵照規則:
Robots協議:協議會指明通用爬蟲能夠爬取網頁的權限。
Robots.txt 只是一個建議。並非全部爬蟲都遵照,通常只有大型的搜索引擎爬蟲纔會遵照。我們我的寫的爬蟲,就無論了。就像公交車上老弱病殘孕專座同樣。
這裏簡單介紹下Robots協議(也叫爬蟲協議、機器人協議等),全稱是「網絡爬蟲排除標準」(Robots Exclusion Protocol),網站經過Robots協議告訴搜索引擎哪些頁面能夠抓取,哪些頁面不能抓取,例如:
淘寶網:https://www.taobao.com/robots...
騰訊網: http://www.qq.com/robots.txt
通用爬蟲工做流程:爬取網頁 - 存儲數據 - 內容處理 - 提供檢索/排名服務
搜索引擎排名:
1.PageRank值:根據網站的流量(點擊量/瀏覽量/人氣)統計,流量越高,網站也越值錢,排名越靠前。
2.競價排名:誰給錢多,誰排名就高。
通用爬蟲的缺點
1.通用搜索引擎所返回的結果都是網頁,而大多狀況下,網頁裏90%的內容對用戶來講都是無用的。
2.不一樣領域、不一樣背景的用戶每每具備不一樣的檢索目的和需求,搜索引擎沒法提供針對具體某個用戶的搜索結果。
3.萬維網數據形式的豐富和網絡技術的不斷髮展,圖片、數據庫、音頻、視頻多媒體等不一樣數據大量出現,通用搜索引擎對這些文件無能爲力,不能很好地發現和獲取。
4.通用搜索引擎大多提供基於關鍵字的檢索,難以支持根據語義信息提出的查詢,沒法準確理解用戶的具體需求。
爲了解決這個問題,聚焦爬蟲出現了
2、聚焦爬蟲:爬蟲程序員寫的針對某種內容的爬蟲。
面向主題爬蟲,面向需求爬蟲:會針對某種特定的內容去爬取信息,並且會保證信息和需求儘量相關。而咱們後面要學習的,就是聚焦爬蟲。