999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Python的網絡爬蟲技術

2018-04-16 07:11:12遼寧師范大學計算機與信息技術學院
電子世界 2018年16期

遼寧師范大學計算機與信息技術學院 陳 樂

1 引言

當今時代是大數據的時代,各個領域都離不開數據的支持。快速搜索數據并且充分利用數據信息,成為了一個巨大的挑戰。為了解決這些難題,網絡爬蟲技術應運而生。使用網絡爬蟲技術可以快速提取數據,提高數據檢索質量。

2 網絡爬蟲技術

2.1 網絡爬蟲技術的基本概念

網絡爬蟲又稱網絡蜘蛛,或者網絡機器人。它是一種按照一定的規則,自動地抓取萬維網信息的程序或者腳本。[1]換句話來說,它可以根據網頁的鏈接地址自動獲取網頁內容。如果把互聯網比做一個大蜘蛛網,它里面有許許多多的網頁,網絡蜘蛛可以獲取所有網頁的內容。

2.2 網絡爬蟲架構

網絡爬蟲架構主要由三個部分組成:網絡爬蟲調度端(負責開啟網絡爬蟲主程序);網絡爬蟲主程序;目標數據(抓取有價值數據)。

網絡爬蟲主程序分為3個部分:

(1)Url管理器:管理Url,包括已經爬取過的Url和待爬的Url。

(2)網頁下載器:根據Url地址,將網頁下載保存到本地,存儲為字符串。

(3)網頁解析器:將存儲的字符串中有價值的數據進行解析。

2.3 網絡爬蟲架構流程

爬蟲系統調度段詢問Url管理器,從一個Url或者多個Url開始,將他們放在“待抓取”的Url隊列中,系統按照一定的順序從隊列中取出Url地址,將其傳送給網頁下載器并下載網頁內容,調度端接收到網頁下載的內容后,將網頁內容發送給網頁解析器,抓取想要的內容。[2]在抓取的過程中,爬蟲還會碰到Url,在已經下載的Url隊列中檢查,如果沒有被抓取過,確認是新的Url,則放到Url隊列末尾,等待抓取。上面過程是循環往復進行的,直到“待抓取”的Url隊列為空,停止抓取。

3 基于Python的網絡爬蟲分析

3.1 Python語言的優越性

(1)方便簡單,容易上手。Python幾乎能在所有的操作系統上運行,很容易上手,初學者可以快速適應。

(2)Python是一個廣泛使用的腳本語言,其自帶了urllib、urllib2等爬蟲最基本的庫,可以抓取Url的內容。[3]

(3)Python擅長處理字節流的各種模式,具有很好的開發速度。

3.2 Python網絡爬蟲模塊

3.2.1 Url管理模塊

Url管理模塊的作用是管理Url,包括已經被抓取的Url集合和還未被抓取的Url集合。Url管理模塊可以有效預防重復抓取循環抓取的問題。

Python中實現網址管理有三種途徑:

(1)存儲在內存中,針對于Url數據較少的情況。在Python中用Set()集合加以實現,Set()可以消除重復數據,避免重復抓取的問題。

(2)存儲在關系數據庫,實現永久存儲。建立Url表,該表中有兩個字段,一個字段是Url地址,另一個字段用來表示Url是否被抓取。

(3)存儲在緩存數據庫redis中,針對于Url數據較多的情況下。也可以用Set()集合來實現,來存取“待爬”的Url地址和“已爬”的Url地址。

3.2.2 網頁下載器

網頁下載器將Url對應的網頁下載到本地,將其存儲為字符串,以便接下來對數據進行處理。

Python支持的網頁下載工具有兩種:

Python自身攜帶的urllib2模塊。urllib2針對于簡單的網絡爬蟲,能夠完成網頁下載,提交用戶數據,代理訪問,客戶登錄等多種功能。

下面是簡單的網絡爬蟲代碼(以百度為例):

import urllib2

response.urllib2.urlopen(“http://www.baidu.com”)

print response.read()

在這個例子中,我們首先調入urllib2庫中的url.open()方法,傳送百度的url,返回一個response對象,調入response對象的read()方法,返回獲取的網頁內容,并打印.。

第三方工具包—request,request的功能比較強大,屬于第三方插件。

3.2.3 網頁解析器

網頁解析器用來從網頁中提取從最初想要的數據。實則上提取的是兩部分:(1)Url列表;(2)目標數據。

Python中的網頁解析器有兩種類型:

(1)利用正則表達式。正則表達式將網頁當作字符串來處理,只適用于簡單的網頁。一般網頁較為復雜時,不采用此類方法。

(2)基于網頁的DOM結構。DOM樹是一種樹形標簽結構。網頁解析器會將HTML文檔當成DOM樹,對其進行上下級結構的遍歷來提取有用信息。使用樹形結構可以對網頁中的具體信息來進行定位,定位到具體的某個節點、屬性等。其中BeautifulSoup解析器功能強大,更為盛行。BeautifulSoup利用find_all()和find()方法來搜索節點,find_all()可以查找所有符合查詢條件的標簽節點,并返回一個列表。find()方法查找符合查詢條件的第一個標簽節點。用這兩種方法搜索節點,提取有價值信息。

4 結語

在大數據時代,網絡爬蟲技術可以有效準確地抓取目標數據,可以為我們節省大量的資源,對信息檢索起著十分重要的作用。基于Python的網絡爬蟲技術,具有很高的前瞻性,有一定的研究價值。

主站蜘蛛池模板: 中文字幕天无码久久精品视频免费| 久久婷婷五月综合97色| 免费人成在线观看视频色| 成人午夜精品一级毛片| 国产专区综合另类日韩一区| 高清不卡毛片| 免费中文字幕一级毛片| 在线无码九区| 亚洲一区波多野结衣二区三区| 国产精品手机视频一区二区| 日韩一二三区视频精品| 国产噜噜噜视频在线观看 | 欧美国产日韩在线观看| 日本高清免费不卡视频| 综合色亚洲| 日韩视频免费| 久久免费观看视频| 伊人欧美在线| 久视频免费精品6| 自偷自拍三级全三级视频| аⅴ资源中文在线天堂| 国产亚洲视频播放9000| 欧美a√在线| 国产精品亚洲va在线观看 | 久久国产V一级毛多内射| 国产精品亚洲天堂| 欧美一级爱操视频| 在线精品欧美日韩| 国产成+人+综合+亚洲欧美| a欧美在线| 日本欧美成人免费| 国内精品视频在线| 91在线日韩在线播放| 欧美狠狠干| 国产一区亚洲一区| 五月天久久综合国产一区二区| 制服丝袜国产精品| 日本国产精品一区久久久| 欧美日韩在线成人| 夜色爽爽影院18禁妓女影院| 精品久久久久久中文字幕女| 欧美国产日本高清不卡| 2019国产在线| 久爱午夜精品免费视频| 99热这里都是国产精品| 亚洲天堂视频网站| 色婷婷啪啪| 亚洲久悠悠色悠在线播放| 国产a在视频线精品视频下载| 97精品久久久大香线焦| 91国内在线视频| 国产精品美女免费视频大全 | 久久精品只有这里有| 国产成人综合久久精品下载| 亚洲黄色成人| 国产激情国语对白普通话| 国产精品永久久久久| 无码丝袜人妻| 免费毛片网站在线观看| 欧美一区二区福利视频| 国产成人调教在线视频| 国产精品刺激对白在线| 99热这里只有精品在线播放| 一区二区三区在线不卡免费 | 午夜老司机永久免费看片| 欧美日韩91| 最新国语自产精品视频在| 欧美色丁香| 国产微拍精品| 波多野结衣无码中文字幕在线观看一区二区| 孕妇高潮太爽了在线观看免费| 伊人查蕉在线观看国产精品| 久久婷婷综合色一区二区| 欧美精品三级在线| 国产永久在线观看| 国产jizzjizz视频| a天堂视频| 伊人福利视频| 午夜爽爽视频| 国产综合在线观看视频| 中文字幕在线免费看| 亚洲中文字幕日产无码2021|