亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

        2018-04-16 07:11:12遼寧師范大學(xué)計(jì)算機(jī)與信息技術(shù)學(xué)院
        電子世界 2018年16期
        關(guān)鍵詞:解析器爬蟲隊(duì)列

        遼寧師范大學(xué)計(jì)算機(jī)與信息技術(shù)學(xué)院 陳 樂

        1 引言

        當(dāng)今時(shí)代是大數(shù)據(jù)的時(shí)代,各個(gè)領(lǐng)域都離不開數(shù)據(jù)的支持??焖偎阉鲾?shù)據(jù)并且充分利用數(shù)據(jù)信息,成為了一個(gè)巨大的挑戰(zhàn)。為了解決這些難題,網(wǎng)絡(luò)爬蟲技術(shù)應(yīng)運(yùn)而生。使用網(wǎng)絡(luò)爬蟲技術(shù)可以快速提取數(shù)據(jù),提高數(shù)據(jù)檢索質(zhì)量。

        2 網(wǎng)絡(luò)爬蟲技術(shù)

        2.1 網(wǎng)絡(luò)爬蟲技術(shù)的基本概念

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

        2.2 網(wǎng)絡(luò)爬蟲架構(gòu)

        網(wǎng)絡(luò)爬蟲架構(gòu)主要由三個(gè)部分組成:網(wǎng)絡(luò)爬蟲調(diào)度端(負(fù)責(zé)開啟網(wǎng)絡(luò)爬蟲主程序);網(wǎng)絡(luò)爬蟲主程序;目標(biāo)數(shù)據(jù)(抓取有價(jià)值數(shù)據(jù))。

        網(wǎng)絡(luò)爬蟲主程序分為3個(gè)部分:

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

        (2)網(wǎng)頁下載器:根據(jù)Url地址,將網(wǎng)頁下載保存到本地,存儲(chǔ)為字符串。

        (3)網(wǎng)頁解析器:將存儲(chǔ)的字符串中有價(jià)值的數(shù)據(jù)進(jìn)行解析。

        2.3 網(wǎng)絡(luò)爬蟲架構(gòu)流程

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

        3 基于Python的網(wǎng)絡(luò)爬蟲分析

        3.1 Python語言的優(yōu)越性

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

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

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

        3.2 Python網(wǎng)絡(luò)爬蟲模塊

        3.2.1 Url管理模塊

        Url管理模塊的作用是管理Url,包括已經(jīng)被抓取的Url集合和還未被抓取的Url集合。Url管理模塊可以有效預(yù)防重復(fù)抓取循環(huán)抓取的問題。

        Python中實(shí)現(xiàn)網(wǎng)址管理有三種途徑:

        (1)存儲(chǔ)在內(nèi)存中,針對(duì)于Url數(shù)據(jù)較少的情況。在Python中用Set()集合加以實(shí)現(xiàn),Set()可以消除重復(fù)數(shù)據(jù),避免重復(fù)抓取的問題。

        (2)存儲(chǔ)在關(guān)系數(shù)據(jù)庫,實(shí)現(xiàn)永久存儲(chǔ)。建立Url表,該表中有兩個(gè)字段,一個(gè)字段是Url地址,另一個(gè)字段用來表示Url是否被抓取。

        (3)存儲(chǔ)在緩存數(shù)據(jù)庫redis中,針對(duì)于Url數(shù)據(jù)較多的情況下。也可以用Set()集合來實(shí)現(xiàn),來存取“待爬”的Url地址和“已爬”的Url地址。

        3.2.2 網(wǎng)頁下載器

        網(wǎng)頁下載器將Url對(duì)應(yīng)的網(wǎng)頁下載到本地,將其存儲(chǔ)為字符串,以便接下來對(duì)數(shù)據(jù)進(jìn)行處理。

        Python支持的網(wǎng)頁下載工具有兩種:

        Python自身攜帶的urllib2模塊。urllib2針對(duì)于簡單的網(wǎng)絡(luò)爬蟲,能夠完成網(wǎng)頁下載,提交用戶數(shù)據(jù),代理訪問,客戶登錄等多種功能。

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

        import urllib2

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

        print response.read()

        在這個(gè)例子中,我們首先調(diào)入urllib2庫中的url.open()方法,傳送百度的url,返回一個(gè)response對(duì)象,調(diào)入response對(duì)象的read()方法,返回獲取的網(wǎng)頁內(nèi)容,并打印.。

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

        3.2.3 網(wǎng)頁解析器

        網(wǎng)頁解析器用來從網(wǎng)頁中提取從最初想要的數(shù)據(jù)。實(shí)則上提取的是兩部分:(1)Url列表;(2)目標(biāo)數(shù)據(jù)。

        Python中的網(wǎng)頁解析器有兩種類型:

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

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

        4 結(jié)語

        在大數(shù)據(jù)時(shí)代,網(wǎng)絡(luò)爬蟲技術(shù)可以有效準(zhǔn)確地抓取目標(biāo)數(shù)據(jù),可以為我們節(jié)省大量的資源,對(duì)信息檢索起著十分重要的作用。基于Python的網(wǎng)絡(luò)爬蟲技術(shù),具有很高的前瞻性,有一定的研究價(jià)值。

        猜你喜歡
        解析器爬蟲隊(duì)列
        利用網(wǎng)絡(luò)爬蟲技術(shù)驗(yàn)證房地產(chǎn)灰犀牛之說
        基于多解析器的域名隱私保護(hù)機(jī)制
        基于Python的網(wǎng)絡(luò)爬蟲和反爬蟲技術(shù)研究
        基于Wireshark的列控中心以太網(wǎng)通信協(xié)議解析器的研究與實(shí)現(xiàn)
        隊(duì)列里的小秘密
        基于多隊(duì)列切換的SDN擁塞控制*
        軟件(2020年3期)2020-04-20 00:58:44
        在隊(duì)列里
        如何防御DNS陷阱?常用3種DNS欺騙手法
        利用爬蟲技術(shù)的Geo-Gnutel la VANET流量采集
        電子測試(2018年1期)2018-04-18 11:53:04
        一種基于無關(guān)DNS的通信隱私保護(hù)技術(shù)研究
        電子世界(2018年14期)2018-04-15 16:14:25
        国产精品一区二区av麻豆日韩| 中文不卡视频| 亚洲一区二区三在线播放| 久久伊人精品色婷婷国产| 又粗又黑又大的吊av| 97久久天天综合色天天综合色hd| 亚洲成a人片在线播放观看国产| 亚洲日本国产一区二区三区| 精品亚洲麻豆1区2区3区| 欧美黑吊大战白妞| 亚洲婷婷丁香激情| 亚洲精品国产第一区三区| 人妻夜夜爽天天爽三区丁香花| 在线综合亚洲欧洲综合网站| 欧美亚洲国产人妖系列视 | 亚洲精品久久久久成人2007| 国产无码夜夜一区二区| 国产成人午夜av影院| 人妻免费一区二区三区免费| 无码人妻av一二区二区三区 | 亚洲av香蕉一区二区三区av| 18禁无遮拦无码国产在线播放| 久青草国产在线观看| 亚洲视频精品一区二区三区| 国产精品一区二区日本| 国产xxxx99真实实拍| 国产欧美日韩图片一区二区| 国产一级内射一片视频免费| 免费无码高潮流白浆视频| 日韩精品中文字幕无码专区| 免费毛片一区二区三区女同 | 99久久精品免费观看国产| 日韩一级特黄毛片在线看| 国产麻豆放荡av激情演绎| 日本一区二区三区免费精品| 老熟妇乱子伦av| 国产精品久久这里只有精品 | 天天躁日日躁aaaaxxxx| 美女自卫慰黄网站| 国产毛片三区二区一区| 人妻少妇精品中文字幕专区|