python网络爬虫初识_python爬虫(一)初识爬虫
什么是爬蟲?
中文名(網絡爬蟲) 外文名(web crawler)
網絡爬蟲(又被稱為網頁蜘蛛,網絡機器人,在FOAF社區中間,更經常的稱為網頁追逐者),是一種按照一定的規則,自動地抓取萬維網信息的程序或者腳本。另外一些不常使用的名字還有螞蟻、自動索引、模擬程序或者蠕蟲。
其實通俗的講就是通過程序去獲取web頁面上自己想要的數據,也就是自動抓取數據,具體怎么抓取數據,需要在項目代碼中具體編寫,
爬蟲可以做什么?
你可以爬去妹子的圖片,爬取自己想看看的視頻。。等等你想要爬取的數據,只要你能通過瀏覽器訪問的數據都可以通過爬蟲獲取
爬蟲的本質是什么?
模擬瀏覽器打開網頁,獲取網頁中我們想要的那部分數據
瀏覽器打開網頁的過程:
當你在瀏覽器中輸入地址后,經過DNS服務器找到服務器主機,向服務器發送一個請求,服務器經過解析后發送給用戶瀏覽器結果,包括html,js,css等文件內容,瀏覽器解析出來最后呈現給用戶在瀏覽器上看到的結果
所以用戶看到的瀏覽器的結果就是由HTML代碼構成的,我們爬蟲就是為了獲取這些內容,通過分析和過濾html代碼,從中獲取我們想要資源(文本,圖片,視頻.....)
爬蟲產生背景是什么?
隨著網絡的迅速發展,萬維網成為大量信息的載體,如何有效地提取并利用這些信息成為一個巨大的挑戰。搜索引擎(Search Engine),例如傳統的通用搜索引擎AltaVista,Yahoo!和Google等,作為一個輔助人們檢索信息的工具成為用戶訪問萬維網的入口和指南。但是,這些通用性搜索引擎也存在著一定的局限性,如:
(1)不同領域、不同背景的用戶往往具有不同的檢索目的和需求,通用搜索引擎所返回的結果包含大量用戶不關心的網頁。
(2)通用搜索引擎的目標是盡可能大的網絡覆蓋率,有限的搜索引擎服務器資源與無限的網絡數據資源之間的矛盾將進一步加深。
(3)萬維網數據形式的豐富和網絡技術的不斷發展,圖片、數據庫、音頻、視頻多媒體等不同數據大量出現,通用搜索引擎往往對這些信息含量密集且具有一定結構的數據無能為力,不能很好地發現和獲取。
(4)通用搜索引擎大多提供基于關鍵字的檢索,難以支持根據語義信息提出的查詢。
為了解決上述問題,定向抓取相關網頁資源的聚焦爬蟲應運而生。聚焦爬蟲是一個自動下載網頁的程序,它根據既定的抓取目標,有選擇的訪問萬維網上的網頁與相關的鏈接,獲取所需要的信息。與通用爬蟲(general purpose web crawler)不同,聚焦爬蟲并不追求大的覆蓋,而將目標定為抓取與某一特定主題內容相關的網頁,為面向主題的用戶查詢準備數據資源。
爬蟲網頁的搜索策略:
網頁的抓取策略可以分為深度優先、廣度優先和最佳優先三種。深度優先在很多情況下會導致爬蟲的陷入(trapped)問題,目前常見的是廣度優先和最佳優先方法。
廣度優先搜索
廣度優先搜索策略是指在抓取過程中,在完成當前層次的搜索后,才進行下一層次的搜索。該算法的設計和實現相對簡單。在目前為覆蓋盡可能多的網頁,一般使用廣度優先搜索方法。也有很多研究將廣度優先搜索策略應用于聚焦爬蟲中。其基本思想是認為與初始URL在一定鏈接距離內的網頁具有主題相關性的概率很大。另外一種方法是將廣度優先搜索與網頁過濾技術結合使用,先用廣度優先策略抓取網頁,再將其中無關的網頁過濾掉。這些方法的缺點在于,隨著抓取網頁的增多,大量的無關網頁將被下載并過濾,算法的效率將變低。
最佳優先搜索
最佳優先搜索策略按照一定的網頁分析算法,預測候選URL與目標網頁的相似度,或與主題的相關性,并選取評價最好的一個或幾個URL進行抓取。它只訪問經過網頁分析算法預測為“有用”的網頁。存在的一個問題是,在爬蟲抓取路徑上的很多相關網頁可能被忽略,因為最佳優先策略是一種局部最優搜索算法。因此需要將最佳優先結合具體的應用進行改進,以跳出局部最優點。將在第4節中結合網頁分析算法作具體的討論。研究表明,這樣的閉環調整可以將無關網頁數量降低30%~90%
深度優先搜索
深度優先搜索策略從起始網頁開始,選擇一個URL進入,分析這個網頁中的URL,選擇一個再進入。如此一個鏈接一個鏈接地抓取下去,直到處理完一條路線之后再處理下一條路線。深度優先策略設計較為簡單。然而門戶網站提供的鏈接往往最具價值,PageRank也很高,但每深入一層,網頁價值和PageRank都會相應地有所下降。這暗示了重要網頁通常距離種子較近,而過度深入抓取到的網頁卻價值很低。同時,這種策略抓取深度直接影響著抓取命中率以及抓取效率,對抓取深度是該種策略的關鍵。相對于其他兩種策略而言。此種策略很少被使用。
ps:搞過算法的人應該都知道深度優先會超時,廣度優先會超內存,最佳優先搜索我怎么了解。
網絡爬蟲的基本工作流程:
首先選取一部分的種子URL,將這些URL放入待抓取URL隊列;
取出待抓取URL,解析DNS得到主機的IP,并將URL對應的網頁下載下來,存儲進已下載網頁庫中,并且將這些URL放進已抓取URL隊列。
分析已抓取URL隊列中的URL,分析其中的其他URL,并且將URL放入待抓取URL隊列,從而進入下一個循環....
無聲有漸,克底功成
總結
以上是生活随笔為你收集整理的python网络爬虫初识_python爬虫(一)初识爬虫的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 黄花梨原木市场价格多少钱一斤
- 下一篇: python拟合求参_机器学习作业(四)