
文章插圖
在現(xiàn)階段大數(shù)據(jù)的時(shí)代中,想要實(shí)現(xiàn)對(duì)數(shù)據(jù)的獲取和分析,要先具備足夠的數(shù)據(jù)源,網(wǎng)絡(luò)爬蟲技術(shù)就為其數(shù)據(jù)獲取提供了良好的條件,且還能夠?qū)崿F(xiàn)對(duì)數(shù)據(jù)源的目的性采集 。
在網(wǎng)絡(luò)爬蟲技術(shù)應(yīng)用中,Python 腳本語(yǔ)言的使用十分廣泛,此腳本語(yǔ)言具有著顯著的優(yōu)勢(shì),也提高了網(wǎng)絡(luò)爬蟲技術(shù)運(yùn)用的水平 。
一、網(wǎng)絡(luò)爬蟲所謂網(wǎng)絡(luò)爬蟲,又被稱作網(wǎng)頁(yè)蜘蛛和網(wǎng)絡(luò)的機(jī)器人,主要是根據(jù)一定規(guī)則自動(dòng)進(jìn)行網(wǎng)絡(luò)信息抓取的一種程序或腳本 。這種網(wǎng)絡(luò)爬蟲常被用在互聯(lián)網(wǎng)的搜索引擎和其它類似的網(wǎng)站中,對(duì)這些網(wǎng)站內(nèi)的內(nèi)容進(jìn)行獲取、更新和檢索 。往往通過網(wǎng)絡(luò)爬蟲能夠自動(dòng)采集所訪問頁(yè)面的內(nèi)容,后讓搜索的引擎實(shí)施進(jìn)一步的處理,如對(duì)下載頁(yè)面的分檢、整理等,從而使用戶能夠迅速進(jìn)行所需信息的檢索 。
二、python的網(wǎng)絡(luò)爬蟲優(yōu)勢(shì)Python 的語(yǔ)言十分簡(jiǎn)潔,使用起來十分簡(jiǎn)單、易學(xué),通過Python 進(jìn)行編寫就像使用英語(yǔ)進(jìn)行寫作一樣 。
其次Python 在使用中十分方便,并不需要IDE,而僅僅通過sublime text 就能夠?qū)Υ蟛糠值闹行?yīng)用進(jìn)行開發(fā);同時(shí),Python 爬蟲的框架功能十分強(qiáng)大,其框架能夠?qū)W(wǎng)絡(luò)數(shù)據(jù)進(jìn)行爬取,還能對(duì)結(jié)構(gòu)性的數(shù)據(jù)進(jìn)行提取,經(jīng)常用在數(shù)據(jù)的挖掘、歷史數(shù)據(jù)的存儲(chǔ)和信息的處理等程序內(nèi);另外,Python 網(wǎng)絡(luò)的支持庫(kù)和html 的解析器功能十分強(qiáng)大,借助網(wǎng)絡(luò)的支持庫(kù)通過較少代碼的編寫,就能夠進(jìn)行網(wǎng)頁(yè)的下載,且通過網(wǎng)頁(yè)的解析庫(kù)就能夠?qū)W(wǎng)頁(yè)內(nèi)各標(biāo)簽進(jìn)行解析,和正則的表達(dá)式進(jìn)行結(jié)合,十分便于進(jìn)行網(wǎng)頁(yè)內(nèi)容的抓取 。
三、 基于Python 的網(wǎng)絡(luò)爬蟲技術(shù)1、URL 管理模塊
此模塊作用主要是對(duì)URL 進(jìn)行管理,包括那些已抓取和未被抓取URL 的集合,且能夠?qū)χ貜?fù)和循環(huán)等抓取問題進(jìn)行有效的預(yù)防 。Python 在網(wǎng)址的管理中,主要有三種類型的途徑 。首先,在內(nèi)存中進(jìn)行存儲(chǔ),且URL 的數(shù)據(jù)比較少,則通過Python 內(nèi)Set()的集合就能夠?qū)崿F(xiàn)管理,還能夠?qū)?shù)據(jù)重復(fù)進(jìn)行消除和重復(fù)抓取問題的避免;然后,在關(guān)系的數(shù)據(jù)庫(kù)內(nèi)進(jìn)行存儲(chǔ),能夠達(dá)到永久性的存儲(chǔ)目的,先進(jìn)行URL 表的建立,在此表內(nèi)包含兩個(gè)的字段,其中一個(gè)字段表示URL 的地址,而另一個(gè)的字段則體現(xiàn)是否抓取URL;另外,在緩存的數(shù)據(jù)庫(kù)內(nèi)進(jìn)行儲(chǔ)存,如URL 數(shù)據(jù)比較多,也能夠借助Set()的集合實(shí)現(xiàn),對(duì)待爬以及已爬URL 的地址進(jìn)行存取 。
2、 網(wǎng)頁(yè)的下載器
對(duì)于網(wǎng)頁(yè)的下載器來說,主要是把URL 所對(duì)應(yīng)網(wǎng)頁(yè)在本地內(nèi)進(jìn)行下載,并把其存作字符串,便于后續(xù)對(duì)數(shù)據(jù)實(shí)施處理 。在Python可以使用網(wǎng)頁(yè)的下載工具主要有兩種,一種是Python 內(nèi)自己所具有URLlib2的模塊,對(duì)那些簡(jiǎn)單類型網(wǎng)絡(luò)爬蟲就能夠?qū)ζ渚W(wǎng)頁(yè)進(jìn)行下載,對(duì)用戶的數(shù)據(jù)進(jìn)行提交,并具有訪問代理和客戶的登錄等功能;另一種是第三方的工具包,如request 等,這種工具包的功能一般較為強(qiáng)大,但是一種第三方的軟件[2] 。將百度當(dāng)作例子,對(duì)其網(wǎng)絡(luò)爬蟲的代碼進(jìn)行分析:
Import urllib2
Response.urllib2.urlopen(“http://www.baidu.com”)
Print response.read()
在此例子中,先進(jìn)行urllib2 內(nèi)url.open()方法的調(diào)入,對(duì)百度URL 進(jìn)行傳送,后對(duì)一個(gè)response 的對(duì)象進(jìn)行返回,再進(jìn)行response 對(duì)象read()方法的調(diào)入,最后返回獲取網(wǎng)頁(yè)的內(nèi)容并打印 。
3、網(wǎng)頁(yè)的解析器
通過網(wǎng)頁(yè)的解析器,主要是對(duì)網(wǎng)頁(yè)內(nèi)進(jìn)行想要數(shù)據(jù)的提取,一般所提取內(nèi)容主要有URL 的列表和目標(biāo)的數(shù)據(jù)等部分 。在Python 內(nèi)網(wǎng)頁(yè)的解析器存在兩種類型,一種是借助正則的表達(dá)式,其把網(wǎng)頁(yè)作為字符串進(jìn)行處理,此種類型一般用在簡(jiǎn)單網(wǎng)頁(yè)內(nèi),若網(wǎng)頁(yè)比較復(fù)雜就不適合使用此類型;另一種是借助網(wǎng)頁(yè)DOM 的結(jié)構(gòu),而DOM 呈現(xiàn)出樹形標(biāo)簽的結(jié)構(gòu),網(wǎng)頁(yè)的解析器會(huì)把HTML 的文檔作為DOM樹并對(duì)其上下級(jí)的結(jié)構(gòu)進(jìn)行遍歷,后進(jìn)行有用信息的提取,同時(shí)這種方法通過樹形的結(jié)構(gòu)能夠?qū)W(wǎng)頁(yè)內(nèi)具體的信息節(jié)點(diǎn)和屬性等實(shí)施定位 。
以上關(guān)于本文的內(nèi)容,僅作參考!溫馨提示:如遇健康、疾病相關(guān)的問題,請(qǐng)您及時(shí)就醫(yī)或請(qǐng)專業(yè)人士給予相關(guān)指導(dǎo)!
「愛刨根生活網(wǎng)」www.malaban59.cn小編還為您精選了以下內(nèi)容,希望對(duì)您有所幫助:- html5零基礎(chǔ)入門教程 html上傳文件到服務(wù)器
- python語(yǔ)言基礎(chǔ)知識(shí) python零基礎(chǔ)教程
- python退出程序代碼大全 python停止程序運(yùn)行快捷鍵
- 筆記本電腦操作入門 筆記本新手入門教程怎么操作
- 學(xué)python需要的基礎(chǔ)知識(shí) python教學(xué)設(shè)計(jì)
- 數(shù)據(jù)分析用python還是bi powerbi使用教程
- python貪吃蛇最簡(jiǎn)單代碼 python的idle怎么用
- python四則運(yùn)算器編寫 idea安裝python插件配置
- linux搭建python環(huán)境 linux下安裝python模塊
- 編程入門自學(xué)軟件推薦 app編程入門教程難學(xué)嗎
