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

        ?

        基于python的網(wǎng)絡(luò)爬蟲研究①

        2020-05-18 13:26:00郭鋒鋒
        關(guān)鍵詞:爬蟲分塊貝葉斯

        郭鋒鋒

        (宿州職業(yè)技術(shù)學(xué)院計(jì)算機(jī)信息系,安徽 宿州 234000)

        1 網(wǎng)絡(luò)爬蟲介紹

        網(wǎng)絡(luò)爬蟲,又稱蜘蛛機(jī)器人,其實(shí)質(zhì)是程序,是抓取網(wǎng)頁(yè)數(shù)據(jù)的程序,最終是根據(jù)用戶需求,在一定規(guī)則下,得到用戶需要的數(shù)據(jù)信息。爬蟲通常分為通用爬蟲和聚焦爬蟲,通用爬蟲對(duì)資源進(jìn)行全覆蓋,沒有針對(duì)性的數(shù)據(jù),返回結(jié)果可能包含一些用戶不需要的信息,而聚焦爬蟲,聚焦某些點(diǎn),更精確,抓取特定主題的內(nèi)容,獲得相應(yīng)的信息。聚焦爬蟲根據(jù)需要抓取的目標(biāo)描述,用相應(yīng)的算法分析網(wǎng)頁(yè)數(shù)據(jù),最后對(duì)url制定搜索策略,最終一直爬取到自己需要的信息,最終的結(jié)果按照要求存儲(chǔ)、排序、瀏覽等。

        2 python爬蟲框架比較

        python作為一種語言,1989年便出現(xiàn)了,一路攀升,近幾年熱度大增,2019年已經(jīng)成為僅次于java和c和c++的第四大語言。成為目前最受歡迎的編程語言,目前是作為爬蟲領(lǐng)域的第一語言。基于python的爬蟲框架很多,目前用的比較多的是scrapy,pyspider,biautifulsoup等等,每種框架在性能和爬行能力上各有不同,下面對(duì)幾個(gè)python爬蟲框架進(jìn)行比較。主要從爬行能力和爬行性能兩方面進(jìn)行比較

        表1 幾種python爬蟲框架比較

        3 scrapy爬蟲改進(jìn)

        由于scrapy通用開源爬蟲框架不能滿足我們對(duì)特定的內(nèi)容的抓取,本文主要設(shè)計(jì)了基于scrapy的開源爬蟲框架,用貝葉斯分類器進(jìn)行主題相關(guān)性判定,利用搜索策略在網(wǎng)站中采集網(wǎng)頁(yè)信息,通過結(jié)合dom樹的分塊聚類算法解析網(wǎng)頁(yè)內(nèi)容,通過解析出來的網(wǎng)頁(yè)內(nèi)容更新當(dāng)前網(wǎng)頁(yè)節(jié)點(diǎn)權(quán)值,通過主題相關(guān)相似性模塊對(duì)子urls進(jìn)行鏈接權(quán)值的計(jì)算,然后根據(jù)結(jié)點(diǎn)隊(duì)列中網(wǎng)頁(yè)關(guān)系計(jì)算結(jié)點(diǎn)權(quán)值,通過計(jì)算,使用過濾模塊淘汰掉結(jié)點(diǎn)權(quán)值低于urls的內(nèi)容。優(yōu)化scrapy框架下的url去重,下面對(duì)系統(tǒng)幾個(gè)重要模塊進(jìn)行說明。

        貝葉斯分類的定義

        1)設(shè)x={a1,a2,…,am}為一個(gè)集合,其中a1-am為x的一個(gè)屬性。

        2)有類別集合C={y1,y2,…,yn}。

        3)接下來逐一計(jì)算概率P(y1|x),P(y2|x),…,P(yn|x)。

        4)求最大概率。則X屬于概率最大的類別P(yk|x)=max{P(y1|x),P(y2|x),…,P(yn|x)},則x∈yk。

        根據(jù)貝葉斯定理,要求P(Y|X),求出P(X|Y) 就可以.這里Y相當(dāng)于A,X相當(dāng)于B.把B分解為各個(gè)屬性,求出每個(gè)類別的屬性即可,如下

        1)找到一個(gè)訓(xùn)練樣本集。

        2)訓(xùn)練樣本集是已知分類的待分類項(xiàng)集合。

        3)經(jīng)過統(tǒng)計(jì)計(jì)算出條件概率估計(jì)。即

        P(a1|y1),P(a2|y1),…,P(am|y1);P(a1|y2),

        P(a2|y2),…,P(am|y2);…;P(a1|yn),

        P(a2|yn),…,P(am|yn)

        4)如果各個(gè)特征屬性是條件獨(dú)立的,則:

        因?yàn)榉帜窹(x)為常數(shù),所以將分子最大化即可。又因?yàn)楦魈卣鲗傩允菞l件獨(dú)立的,所以有:

        P(x|yi)P(yi)=P(a1|yi)P(a2|yi)…

        利用貝葉斯分類器進(jìn)行主題相關(guān)性的判定,屬于類別的特征屬性的例子越多,權(quán)值越大,主題相關(guān)性就越大。

        重點(diǎn)介紹本系統(tǒng)涉及的幾個(gè)重要模塊,畫出幾個(gè)重要的算法流程圖

        本爬蟲系統(tǒng)主要涉及爬蟲模塊、下載模塊、解析存儲(chǔ)模塊、過濾和去重模塊以及數(shù)據(jù)庫(kù)存儲(chǔ)模塊等模塊。每個(gè)模塊的作用如下:爬蟲模塊的作用是用本文的搜索策略在網(wǎng)頁(yè)采集信息,主體相關(guān)性分析算法利用貝葉斯分類對(duì)鏈接進(jìn)行權(quán)重計(jì)算,下載模塊是把爬取的網(wǎng)頁(yè)結(jié)構(gòu)下載下來,解析存儲(chǔ)模塊是把解析的內(nèi)容存儲(chǔ)起來把鏈接送到隊(duì)列調(diào)度,過濾和去重模塊負(fù)責(zé)調(diào)度和去重操作,數(shù)據(jù)庫(kù)存儲(chǔ)模塊是把爬取的內(nèi)容接收存儲(chǔ)到數(shù)據(jù)庫(kù)中。

        通用爬蟲原理圖如下:

        圖1 通用爬蟲系統(tǒng)

        圖2 鏈接處理圖

        爬蟲系統(tǒng)中的url鏈接去重、過濾是本爬蟲系統(tǒng)中重要的內(nèi)容,對(duì)于鏈接的過濾是對(duì)抓到的網(wǎng)頁(yè)淘汰掉一部分鏈接,具體原理為,抓取網(wǎng)頁(yè)后,通過主體相關(guān)性算法計(jì)算出新的urls的權(quán)重,然后把此權(quán)重值與預(yù)設(shè)的臨界值進(jìn)行對(duì)比,如果此權(quán)重值大于臨界值則為相關(guān)鏈接加入到url隊(duì)列,否則直接淘汰掉此鏈接。

        過濾后對(duì)url去重方法可以有hash表,set,布隆過濾器等。利用兩個(gè)hash表便可以進(jìn)行去重操作,一個(gè)hash表用來記錄正訪問抓取的filename,另一個(gè)hash表用來存放抓取過的host,另外用數(shù)據(jù)庫(kù)存儲(chǔ)url,通過判定網(wǎng)頁(yè)里的鏈接是否指向當(dāng)前網(wǎng)站,決定繼續(xù)抓取還是結(jié)束。在爬蟲中,已經(jīng)爬取的url鏈接會(huì)被記錄,新的url會(huì)比對(duì)判斷是否在已經(jīng)被記錄的集合中,若存放鏈接的集合記錄數(shù)量大,所需要的存儲(chǔ)空間相應(yīng)巨大,此時(shí)可用布隆過濾器來解決。本文采用基于hash存儲(chǔ)的去重方法即可。下圖為鏈接處理流程圖。

        基于分塊聚類的網(wǎng)頁(yè)解析算法在爬蟲系統(tǒng)的實(shí)現(xiàn)中網(wǎng)頁(yè)解析起到重要作用,網(wǎng)頁(yè)解析算法用到了結(jié)合dom樹的分塊算法,dom樹中的結(jié)構(gòu)信息提供給算法文本,標(biāo)簽等提示?;诿芏榷x的聚類算法可以處理噪聲能力,不足之處在于對(duì)象類之間差異較大時(shí),效果不好。 以基于dom樹分塊算法為核心,基于scrapy爬蟲框架,設(shè)計(jì)基于scrapy的爬蟲系統(tǒng),爬蟲對(duì)獲得的url鏈接進(jìn)行相關(guān)性判斷,接下來用分塊算法對(duì)網(wǎng)頁(yè)結(jié)構(gòu)進(jìn)行解析,根據(jù)urls鏈接權(quán)重,把不相關(guān)的urls去掉,最后留下的交給引擎處理。下圖給出scrapy爬蟲框架和改進(jìn)后的爬蟲框架圖。

        圖3 scrapy的整體架構(gòu)

        通用爬蟲架構(gòu)描述了scrapy的各個(gè)組件和數(shù)據(jù)流情況圖。

        Scrapy engine:引擎是核心,相當(dāng)于計(jì)算機(jī)的cpu,控制整個(gè)數(shù)據(jù)和信號(hào)的傳遞處理。

        Scheduler:調(diào)度器作用是把引擎發(fā)送過來的請(qǐng)求requests存儲(chǔ)在隊(duì)列中,交給下載器。

        Downloader:下載器是爬蟲系統(tǒng)與互聯(lián)網(wǎng)連接的組件,通過核心組件引擎,獲取響應(yīng)結(jié)果(responses)交給爬蟲組件處理。

        Spiders:接收從下載器模塊傳遞過來的信息,分析獲得item即自己需要的信息,獲取數(shù)據(jù)和urls,然后將獲取內(nèi)容送給item pipeline。

        Item pipeline:處理從爬蟲獲得的數(shù)據(jù)和urls,處理網(wǎng)頁(yè)數(shù)據(jù)。

        Downloader:下載器中間件起到橋梁作用,處理引擎和下載器之間的請(qǐng)求和響應(yīng)。

        對(duì)于scrapy架構(gòu),它的爬蟲和項(xiàng)目管道模塊可以自由編寫,圖4為改進(jìn)后的結(jié)構(gòu)圖,改進(jìn)后的結(jié)構(gòu)圖比之前的框架多了個(gè)貝葉斯分類計(jì)算主題相關(guān)性模塊,連接加到爬蟲模塊中以實(shí)現(xiàn)精確的爬取需求。此模塊的核心是主題相關(guān)性分析。用貝葉斯分類器進(jìn)行主題相關(guān)性分析,網(wǎng)頁(yè)解析用分塊算法,用過濾模塊淘汰掉部分urls,獲得需要的網(wǎng)頁(yè)內(nèi)容,最終回傳爬蟲模塊。

        圖4 改進(jìn)后的整體架構(gòu)

        4 系統(tǒng)測(cè)試

        基于以上算法流程圖,設(shè)計(jì)基于python的scrapy改進(jìn)爬蟲系統(tǒng),系統(tǒng)測(cè)試要求如下:

        操作系統(tǒng):Windows

        處理器:要求900MHZ以上

        RAM:2G或以上

        存儲(chǔ):64G

        軟件:python3 Mysqlv5.6以上 redis server v3.2及以上

        通過對(duì)主題詞宿州 城市發(fā)展 政治 經(jīng)濟(jì) 文化 成果 成績(jī) 文化 收入 等對(duì)相關(guān)網(wǎng)頁(yè)的網(wǎng)頁(yè)進(jìn)行抓取,衡量指標(biāo)以查準(zhǔn)率和耗時(shí)來衡量,性能比較結(jié)果如下:

        表2 爬蟲算法抓取300個(gè)網(wǎng)頁(yè)情況

        表3 爬蟲算法抓取8000個(gè)網(wǎng)頁(yè)情況

        5 結(jié) 論

        介紹了目前較火的python語言,以及爬蟲框架系統(tǒng),可以提取很多類型的網(wǎng)站數(shù)據(jù),通過配置好一定的實(shí)驗(yàn)環(huán)境,設(shè)定主題詞,對(duì)相關(guān)網(wǎng)頁(yè)進(jìn)行抓取,通過改進(jìn)scrapy框架下的url過濾、基于hash表的去重算法,通過新算法抓取不同數(shù)目的網(wǎng)頁(yè)鏈接入手,新提出的爬蟲算法查準(zhǔn)率更高,時(shí)間更短,有良好的性能,能更快的得到和用戶要求主題一致的網(wǎng)頁(yè)。對(duì)以后的爬蟲研究有借鑒作用。另外,只是提取了源網(wǎng)頁(yè)的部分鏈接,更深層次內(nèi)容的獲取將有待進(jìn)一步研究。

        猜你喜歡
        爬蟲分塊貝葉斯
        利用網(wǎng)絡(luò)爬蟲技術(shù)驗(yàn)證房地產(chǎn)灰犀牛之說
        基于Python的網(wǎng)絡(luò)爬蟲和反爬蟲技術(shù)研究
        分塊矩陣在線性代數(shù)中的應(yīng)用
        利用爬蟲技術(shù)的Geo-Gnutel la VANET流量采集
        貝葉斯公式及其應(yīng)用
        大數(shù)據(jù)環(huán)境下基于python的網(wǎng)絡(luò)爬蟲技術(shù)
        電子制作(2017年9期)2017-04-17 03:00:46
        反三角分塊矩陣Drazin逆新的表示
        基于貝葉斯估計(jì)的軌道占用識(shí)別方法
        基于自適應(yīng)中值濾波的分塊壓縮感知人臉識(shí)別
        一種基于貝葉斯壓縮感知的說話人識(shí)別方法
        電子器件(2015年5期)2015-12-29 08:43:15
        99热免费精品| 国产麻豆精品精东影业av网站 | 首页 综合国产 亚洲 丝袜 | 国产熟妇按摩3p高潮大叫| 国产一及毛片| 在线看不卡的国产视频| 亚洲最大中文字幕熟女| 国产裸体xxxx视频在线播放 | 俄罗斯老熟妇色xxxx| 国产精品27页| 国产av麻豆精品第一页| 久久国产成人精品av| 国产剧情麻豆女教师在线观看| 亚洲女同成av人片在线观看| 中文字幕久久精品一区二区| 观看在线人视频| 乱码午夜-极品国产内射| 亚洲蜜芽在线精品一区| 国产高清精品一区二区| 成人综合网站| 国产成人AV无码精品无毒 | 天堂新版在线资源| 国产精品一区高清在线观看| 久久婷婷夜色精品国产 | 国产欧美日韩综合精品一区二区| 97se在线观看| 国产成人久久综合第一区| 国产一区二区三区毛片| 熟妇的荡欲色综合亚洲| 色综合色综合久久综合频道| 精品私密av一区二区三区| 国产精品无码v在线观看| 日韩www视频| 国产精品一区一区三区| 免费不卡无码av在线观看| 三上悠亚av影院在线看| 亚洲一区二区免费日韩| 粉嫩国产av一区二区三区| 国语自产偷拍精品视频偷| 国产h视频在线观看网站免费| 亚洲av激情一区二区|