首頁  >  文章  >  後端開發  >  網站爬蟲的一個實際分享

網站爬蟲的一個實際分享

零下一度
零下一度原創
2017-07-27 17:02:241328瀏覽

產生背景

編輯

隨著網路的快速發展,萬維網成為大量資訊的載體,如何有效地提取並利用這些資訊成為一個巨大的挑戰。搜尋引擎(Search Engine),例如傳統的通用搜尋引擎AltaVista,Yahoo!和Google等,作為一個輔助人們檢索資訊的工具成為使用者存取萬維網的入口和指南。但是,這些通用性搜尋引擎也存在著一定的局限性,如:

(1)不同領域、不同背景的使用者往往有不同的檢索目的和需求,而通用搜尋引擎所傳回的結果包含大量使用者不關心的網頁。

(2)通用搜尋引擎的目標是盡可能大的網路覆蓋率,有限的搜尋引擎伺服器資源與無限的網路資料資源之間的矛盾將進一步加深。

(3)萬維網資料形式的豐富和網路技術的不斷發展,圖片、資料庫、音訊、視訊多媒體等不同數據大量出現,通用搜尋引擎往往對這些資訊含量密集且具有一定結構的數據無能為力,不能很好地發現和獲取。

(4)通用搜尋引擎大多提供基於關鍵字的檢索,難以支援根據語意資訊提出的查詢。

網路爬蟲

為了解決上述問題,定向抓取相關網頁資源的聚焦爬蟲應運而生。聚焦爬蟲是一個自動下載網頁的程序,它根據既定的抓取目標,有選擇的訪問萬維網上的網頁與相關的鏈接,獲取所需要的信息。與通用爬蟲(general purpose web crawler)不同,聚焦爬蟲並不追求大的覆蓋,而將目標定為抓取與某一特定主題內容相關的網頁,為面向主題的用戶查詢準備資料資源。

1 聚焦爬蟲工作原理以及關鍵技術概述

網路爬蟲是一個自動提取網頁的程序,它為搜尋引擎從萬維網上下載網頁,是搜尋引擎的重要組成。傳統爬蟲從一個或若干初始網頁的URL開始,獲得初始網頁上的URL,在抓取網頁的過程中,不斷從當前頁面上抽取新的URL放入隊列,直到滿足系統的一定停止條件。聚焦爬蟲的工作流程較為複雜,需要根據一定的網頁分析演算法過濾與主題無關的鏈接,保留有用的鏈接並將其放入等待抓取的URL隊列。然後,它將根據一定的搜尋策略從佇列中選擇下一步要抓取的網頁URL,並重複上述過程,直到達到系統的某一條件時停止。另外,所有被爬蟲抓取的網頁將會被系統存貯,進行一定的分析、過濾,並建立索引,以便之後的查詢和檢索;對於聚焦爬蟲來說,這一過程所得到的分析結果還可能對以後的抓取過程給予回饋和指導。

相對於一般網路爬蟲,聚焦爬蟲也需要解決三個主要問題:

(1) 對抓取目標的描述或定義;

(2) 對網頁或資料的分析與篩選;

(3) 對URL的搜尋策略。

網站爬蟲,主要是爬博客下的所有文章內容及標題,保存到data目錄下。具體如下:

import requestsimport re

url = ''def get_html(url):#打开url并获取该url的所有html信息html_content = requests.get(url).text#从html_conten所有的html信息中匹配到所有博客的超链接地址href_list = re.findall(r'href=\"(.*)\"\>(.*)\<\/a\>', html_content)for line in href_list:#打开超链接地址line_html = requests.get(line[0])
        conten = line[1]
        line_content = line_html.text
        line_encoding = line_html.encodingprint('文章标题:%s,文章编码:%s'%(conten, line_encoding))
get_html(url)

 

##

以上是網站爬蟲的一個實際分享的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn