• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于Python 的網(wǎng)絡(luò)爬蟲技術(shù)探析

      2020-11-25 20:31:46霍柄良武警后勤學(xué)院基礎(chǔ)部
      數(shù)碼世界 2020年4期
      關(guān)鍵詞:解析器腳本語言爬蟲

      霍柄良 武警后勤學(xué)院基礎(chǔ)部

      前言

      在現(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ōu)勢(shì),也提高了網(wǎng)絡(luò)爬蟲技術(shù)運(yùn)用的水平,而基于Python 的網(wǎng)絡(luò)爬蟲技術(shù)如何實(shí)現(xiàn)就是本文主要研究的內(nèi)容。

      1 網(wǎng)絡(luò)爬蟲概述

      所謂網(wǎng)絡(luò)爬蟲,又被稱作網(wǎng)頁蜘蛛和網(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)采集所訪問頁面的內(nèi)容,后讓搜索的引擎實(shí)施進(jìn)一步的處理,如對(duì)下載頁面的分檢、整理等,從而使用戶能夠迅速進(jìn)行所需信息的檢索。

      2 基于Python 的網(wǎng)絡(luò)爬蟲優(yōu)勢(shì)

      Python 是一種網(wǎng)絡(luò)爬蟲腳本語言類型,其在對(duì)網(wǎng)絡(luò)爬蟲編寫中具有著顯著的優(yōu)點(diǎn)。首先,Python 的語言十分簡(jiǎn)潔,使用起來十分簡(jiǎn)單、易學(xué),通過Python 進(jìn)行編寫就像使用英語進(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ò)的支持庫和html 的解析器功能十分強(qiáng)大,借助網(wǎng)絡(luò)的支持庫通過較少代碼的編寫,就能夠進(jìn)行網(wǎng)頁的下載,且通過網(wǎng)頁的解析庫就能夠?qū)W(wǎng)頁內(nèi)各標(biāo)簽進(jìn)行解析,和正則的表達(dá)式進(jìn)行結(jié)合,十分便于進(jìn)行網(wǎng)頁內(nèi)容的抓取。

      3 基于Python 的網(wǎng)絡(luò)爬蟲技術(shù)

      3.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ù)庫內(nèi)進(jìn)行存儲(chǔ),能夠達(dá)到永久性的存儲(chǔ)目的,先進(jìn)行URL 表的建立,在此表內(nèi)包含兩個(gè)的字段,其中一個(gè)字段表示URL 的地址,而另一個(gè)的字段則體現(xiàn)是否抓取URL;另外,在緩存的數(shù)據(jù)庫內(nèi)進(jìn)行儲(chǔ)存,若URL 數(shù)據(jù)比較多,也能夠借助Set()的集合實(shí)現(xiàn),對(duì)待爬以及已爬URL 的地址進(jìn)行存取。

      3.2 網(wǎng)頁的下載器

      對(duì)于網(wǎng)頁的下載器來說,主要是把URL 所對(duì)應(yīng)網(wǎng)頁在本地內(nèi)進(jìn)行下載,并把其存作字符串,便于后續(xù)對(duì)數(shù)據(jù)實(shí)施處理。在Python可以使用網(wǎng)頁的下載工具主要有兩種,一種是Python 內(nèi)自己所具有URLlib2的模塊,對(duì)那些簡(jiǎn)單類型網(wǎng)絡(luò)爬蟲就能夠?qū)ζ渚W(wǎng)頁進(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)頁的內(nèi)容并打印。

      3.3 網(wǎng)頁的解析器

      通過網(wǎng)頁的解析器,主要是對(duì)網(wǎng)頁內(nèi)進(jìn)行想要數(shù)據(jù)的提取,一般所提取內(nèi)容主要有URL 的列表和目標(biāo)的數(shù)據(jù)等部分。在Python 內(nèi)網(wǎng)頁的解析器存在兩種類型,一種是借助正則的表達(dá)式,其把網(wǎng)頁作為字符串進(jìn)行處理,此種類型一般用在簡(jiǎn)單網(wǎng)頁內(nèi),若網(wǎng)頁比較復(fù)雜就不適合使用此類型;另一種是借助網(wǎng)頁DOM 的結(jié)構(gòu),而DOM 呈現(xiàn)出樹形標(biāo)簽的結(jié)構(gòu),網(wǎng)頁的解析器會(huì)吧HTML 的文檔作為DOM樹并對(duì)其上下級(jí)的結(jié)構(gòu)進(jìn)行遍歷,后進(jìn)行有用信息的提取,同時(shí)這種方法通過樹形的結(jié)構(gòu)能夠?qū)W(wǎng)頁內(nèi)具體的信息節(jié)點(diǎn)和屬性等實(shí)施定位。

      4 結(jié)語

      綜上所述,Python 是網(wǎng)絡(luò)爬蟲的技術(shù)實(shí)現(xiàn)中重要的語言腳本類型,其具有著顯著的特點(diǎn)和優(yōu)勢(shì),因此這就需要認(rèn)識(shí)到Python 的優(yōu)越性,在做好網(wǎng)絡(luò)爬蟲的良好引入同時(shí),還要對(duì)此技術(shù)進(jìn)行不斷研究和探索,從而更好發(fā)揮其在網(wǎng)絡(luò)爬蟲中的效果。

      猜你喜歡
      解析器腳本語言爬蟲
      利用網(wǎng)絡(luò)爬蟲技術(shù)驗(yàn)證房地產(chǎn)灰犀牛之說
      基于多解析器的域名隱私保護(hù)機(jī)制
      基于Python的網(wǎng)絡(luò)爬蟲和反爬蟲技術(shù)研究
      基于Wireshark的列控中心以太網(wǎng)通信協(xié)議解析器的研究與實(shí)現(xiàn)
      如何防御DNS陷阱?常用3種DNS欺騙手法
      利用爬蟲技術(shù)的Geo-Gnutel la VANET流量采集
      一種基于無關(guān)DNS的通信隱私保護(hù)技術(shù)研究
      電子世界(2018年14期)2018-04-15 16:14:25
      一種面向SSC的電信增值業(yè)務(wù)的生成方法及實(shí)現(xiàn)
      基于Unity3D的坦克大戰(zhàn)游戲設(shè)計(jì)與實(shí)現(xiàn)
      大數(shù)據(jù)環(huán)境下基于python的網(wǎng)絡(luò)爬蟲技術(shù)
      電子制作(2017年9期)2017-04-17 03:00:46
      和龙市| 蓬安县| 宕昌县| 石阡县| 丹阳市| 屏东县| 乌拉特后旗| 合川市| 江门市| 尉犁县| 嵩明县| 南靖县| 九龙城区| 舞钢市| 信丰县| 安岳县| 吉木萨尔县| 屏东县| 册亨县| 漯河市| 孟连| 高密市| 松桃| 江口县| 沙雅县| 志丹县| 乌拉特中旗| 黑山县| 馆陶县| 雷州市| 桐柏县| 桐庐县| 锦州市| 高安市| 竹北市| 云安县| 方山县| 金溪县| 沈丘县| 辽宁省| 沙坪坝区|