• 
    

    
    

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

      基于Python的通用論壇正文提取研究

      2018-11-26 09:33:32趙光亮令狐雨薇朱德孫趙順艷楊陶陳鳳
      電腦知識與技術(shù) 2018年24期
      關(guān)鍵詞:Python語言

      趙光亮 令狐雨薇 朱德孫 趙順艷 楊陶 陳鳳

      摘要:該文主要探討B(tài)BS類論壇網(wǎng)頁的文本數(shù)據(jù)的爬取與分析。首先,對該類論壇網(wǎng)頁的HTML結(jié)構(gòu)進行研究分析。在該類在論壇類網(wǎng)頁中,文本數(shù)據(jù)主要包含鏈接頁面中的全部主貼、全部回帖。其次,結(jié)合正則表達式、網(wǎng)絡(luò)文本挖掘、Python工具、HTML等工具構(gòu)建該類型論壇網(wǎng)頁文本數(shù)據(jù)的抓取算法。為了便于用戶閱讀文本,還需要構(gòu)建整理、清洗網(wǎng)頁文本數(shù)據(jù)的算法,將抓取的網(wǎng)頁文本數(shù)據(jù)整理為主題和回帖對應(yīng)的json終極數(shù)據(jù)格局。

      關(guān)鍵詞:通用網(wǎng)絡(luò)爬蟲; BBS;正則表達式;Python語言

      中圖分類號:TP3 文獻標(biāo)識碼:A 文章編號:1009-3044(2018)24-0259-02

      1 背景及意義

      當(dāng)今是大數(shù)據(jù)時代,大數(shù)據(jù)又包含無窮大的信息,而互聯(lián)網(wǎng)中的網(wǎng)頁數(shù)據(jù)是半結(jié)構(gòu)化存在的,對我們真正有用的消息被很多廣告、圖標(biāo)、鏈接等噪音元素遮蔽。怎么將有效的信息從網(wǎng)頁數(shù)據(jù)中爬取出來并整理為適合用戶閱讀的最終“產(chǎn)品”,是當(dāng)前整個大數(shù)據(jù)行業(yè)的重點問題之一。由于網(wǎng)頁通常采取超等文本標(biāo)記語言(HTML)來表達,所以提取網(wǎng)頁有關(guān)的信息,應(yīng)先獲取 BBS類型網(wǎng)址,利用 Python語言對于任意 BBS類型的網(wǎng)頁,獲取其 HTML結(jié)構(gòu)內(nèi)容,再運用正則表達式匹配,構(gòu)建一個算法用于提取該頁面全部主貼、所有回帖,并按Json格局開始存儲。

      2 分析方法

      2.1 正則表達式

      本文提及的網(wǎng)絡(luò)爬蟲算法主要是利用正則表達式模糊匹配所需的網(wǎng)頁信息,正則表達式的主要是模糊匹配文字的最佳工具。它具有很強的靈活性、邏輯性和功能性,可以通過簡單快捷的方式對字符串實行復(fù)雜的控制。正則表達式的應(yīng)用:本文對要提取出來的BBS網(wǎng)頁上的源代碼使用正則表達式來抓獲用戶所需要的有效網(wǎng)頁文本內(nèi)容。

      2.2 Python語言

      Python首先是一款免費開源軟件,其次它席卷了其他編程語言的解釋性、編譯性、互動性和面向?qū)ο?。它自?urllib、urllib2、 re等爬蟲最基本的爬蟲庫,網(wǎng)絡(luò)爬蟲是基于 Python語言開發(fā)的開源爬蟲軟件,用 Eclipse軟件中加載Pydev插件實現(xiàn)網(wǎng)絡(luò)平臺搭建,通過對正則表達式和 Python語言的學(xué)習(xí),在 eclipse中編寫代碼實現(xiàn)任意類型 BBS類型網(wǎng)頁的信息提取。

      3 挖掘過程

      3.1 流程分析

      論壇正文提取概括為以下幾個步驟:

      結(jié)合已給樣本數(shù)據(jù)鎖定論文網(wǎng)頁的網(wǎng)址

      對數(shù)據(jù)進行預(yù)處理

      結(jié)合正則表達式判斷現(xiàn)階段的網(wǎng)頁內(nèi)容是否為論壇所要提取的正文數(shù)據(jù)

      基于正則表達式,對網(wǎng)頁信息需求進行匹配

      進行匹配模型的確定

      對預(yù)期結(jié)果進行分析,給出最優(yōu)解決方案的模型

      3.2 數(shù)據(jù)分析

      1)HTML文檔結(jié)構(gòu)與解析

      HTML是一種標(biāo)準(zhǔn)的標(biāo)記語言,是由WEB的發(fā)明者Berners-Lee創(chuàng)立的,主要用來創(chuàng)建Web頁面。瀏覽器可以通過讀取HTML文件然后將其渲染到瀏覽器界面中供用戶瀏覽使用。HTML文檔是純文本文檔的一種,它形象地描摹了對象文檔的各個細胞在瀏覽器中的顯示特性,比如顯示對象文檔某個細胞的位置、顏色、字體等信息。

      2)BBS網(wǎng)頁結(jié)構(gòu)分析

      對 BBS的 URL進行分析,發(fā)現(xiàn) BBS網(wǎng)頁 URL中包含了重要的結(jié)構(gòu)信息,頁面上的不同元素如標(biāo)題、作者、發(fā)帖時間、發(fā)帖內(nèi)容、回帖內(nèi)容等出現(xiàn)特定的標(biāo)記符之間,借此實現(xiàn)了 Python語言爬取網(wǎng)頁信息挖掘的方向。

      3)基于DOM樹的HTML文檔解析

      HTML DOM 即HTML 的標(biāo)準(zhǔn)對象模型、HTML 的標(biāo)準(zhǔn)編程接口、W3C 標(biāo)準(zhǔn)。它界定了全數(shù) HTML 細胞的工具和屬性,以及會見它們的方式。總的來說,HTML DOM 是獲取、修改、添加或刪除 HTML 元素的一個標(biāo)準(zhǔn)。做出有價值的信息,能幫助并指導(dǎo)企業(yè)決策、政府決策等工作。

      3.3 數(shù)據(jù)預(yù)處理

      BBS類網(wǎng)頁文本榨取主要從網(wǎng)頁自身的標(biāo)簽語言結(jié)構(gòu),以及網(wǎng)頁中的分塊視覺特征的角度出發(fā)。一般情況下,文本數(shù)據(jù)都位于標(biāo)簽的[ table]節(jié)點內(nèi),因此去除頁面“噪聲”,對每一個[ table]節(jié)點進行處理后,就可以得到不含任何標(biāo)簽內(nèi)容的純文本字符串。

      通過對 BBS類網(wǎng)頁的 HTML文檔結(jié)構(gòu)進行研究,構(gòu)建了從網(wǎng)頁源代碼中抽取所有主貼、所有回帖相關(guān)的信息的算法,最后能有效地抓獲我們的目標(biāo)信息。用正則達式的匹配功能,我們能夠快速地實現(xiàn)URL 的抽取。網(wǎng)絡(luò)爬蟲以種子網(wǎng)頁為“源”,提取種子網(wǎng)頁中的有用鏈接并將其放入一個有序的候補爬行隊列中,按照用戶希望的規(guī)則從隊列中提取URL。為了避免重復(fù)訪問同一個鏈接,我們將以訪問過的URL備份到已訪問URL隊列。

      為了使得抓取的數(shù)據(jù)有效,將對整體數(shù)據(jù)進行非正常剔除。(例如:Web網(wǎng)頁打不開,指定的主題不存在等。整體數(shù)據(jù)進行非正常剔除。(例如:網(wǎng)頁打不開,指定的主題不存在或已被刪除或正在被審核,請返回)。

      3.4 挖掘建模

      聯(lián)網(wǎng)比喻為一張蜘蛛網(wǎng), Crawler就像敏捷的蜘蛛一樣在這張網(wǎng)上掃蕩,不斷地偵探互聯(lián)網(wǎng)上對用戶有用的文本信息。為了快速準(zhǔn)確獲取,聯(lián)網(wǎng)比喻為一張蜘蛛網(wǎng), Crawler就像蜘蛛一樣在這張網(wǎng)上游走,不斷地搜索互聯(lián)網(wǎng)上的有用信息。為了快速準(zhǔn)確獲取輿情信息,提出以下提取方式,方案如下:

      (1)獲取任意BBS類型的URL

      (2)針對任意BBS類型網(wǎng)頁,正文提取需要的數(shù)據(jù)項主要有主貼(正文、時間及作者)、回帖(正文、時間及作者)。本文在通過網(wǎng)頁正文提取技術(shù)的基礎(chǔ)上,實現(xiàn)了對網(wǎng)頁正文更好的提取,利用html標(biāo)簽對正文、時間及作者進行分析。

      (3)如果要對BBS類論壇網(wǎng)頁進行抓取,那么需要先對該類網(wǎng)頁進行聚類處理。

      (4)然后對用戶需要的取數(shù)據(jù)項信息進行爬取,對于有發(fā)表作者、主題、發(fā)表內(nèi)容和發(fā)表時間的網(wǎng)頁,本文采用正則表BBS類論壇網(wǎng)絡(luò)爬蟲實現(xiàn)循環(huán)獲取網(wǎng)頁的原理是通過不斷地沖擊網(wǎng)頁內(nèi)文本包含的超鏈接地址來獲取更多的網(wǎng)頁,算法模型如下:

      獲取任意BBS類型的URL

      針對任意類型BBS網(wǎng)頁,利用HTML標(biāo)簽樹對正文、時間及作者進行分析

      在BBS論壇類網(wǎng)頁進行抽取之前,需要先對爬行的網(wǎng)頁進行聚類

      用正則表達式對網(wǎng)頁的抽取數(shù)據(jù)項有發(fā)表作者、內(nèi)容、主題和發(fā)表時間

      3.5 分析結(jié)果

      針對挖掘模型,經(jīng)過數(shù)據(jù)處理后結(jié)果如下:

      標(biāo)題信息

      {標(biāo)題信息:"從這條新聞中你得到了什么教訓(xùn)? - 笑話大全 - 搞笑村"}

      題主信息

      {題主信息: "臨風(fēng)有點冷"}

      題主發(fā)帖內(nèi)容

      {“題主發(fā)帖內(nèi)容”:[{“在網(wǎng)上看個新聞,大概內(nèi)容是”:”老公買了一只藏獒幼仔,沒時間養(yǎng),一直是老婆在養(yǎng)”},{“一次老公老婆吵架,老公把老婆打了,結(jié)果藏獒沖出來果斷把老公手咬斷了!”},{“打老婆時要把狗栓好!” }]}

      回帖信息

      {“回帖信息”:"分?jǐn)?shù)高如果認(rèn)購二哥讓他退給我"}

      回帖作者

      {“回帖作者”:"豪杰先鋒濤濤"}

      回帖時間:

      {“回帖時間”:"2016-9-4 09:57:16"}

      3.6 算法評價

      本文的算法是固定的對于某類的 BBS類類型的BBS類論壇網(wǎng)頁,對于任意類型的BBS類論壇網(wǎng)頁的信息提取還沒有達到。算法使用的匹配原則不能實時更新,對于不斷更新的網(wǎng)頁源代碼,本文所使用的算法可能會不適用。

      4 結(jié)語

      針對 BBS論壇網(wǎng)頁的主貼與回帖的提取,本文使用的是正則表達式來對網(wǎng)頁源代碼進行所需信息的匹配與提取,為了更準(zhǔn)確地使用正則表達式,在之前了解了網(wǎng)頁源代碼的結(jié)構(gòu),根據(jù)所需要的內(nèi)容所在的標(biāo)簽進行了多網(wǎng)頁的分析。使用相似度最大的一種正則表達式的表示方法對網(wǎng)頁源代碼進行匹配標(biāo)記。本文對網(wǎng)頁文本數(shù)據(jù)的提取是具有一定的局限性,主要針對 BBS論壇中的信息正則表達式,協(xié)同網(wǎng)絡(luò)爬蟲技術(shù),使得數(shù)據(jù)分析員能夠快速從互聯(lián)網(wǎng)中獲取海量的網(wǎng)頁數(shù)據(jù),對抓獲的數(shù)據(jù)進行系統(tǒng)的整理和分析,從中提取出對互聯(lián)網(wǎng)數(shù)據(jù)用戶有價值的信息,并指導(dǎo)該用戶做出決策等。

      參考文獻:

      [1] 李媛.輿情系統(tǒng)中web信息抽取子系統(tǒng)的設(shè)計與實現(xiàn)[D].電子科技大學(xué),2013.

      [2] 余浩.基于網(wǎng)絡(luò)信息檢索的網(wǎng)頁文本抽取和處理的研究[D].南京郵電大學(xué),2014.

      [3] 劉佐達,張久嶺,陳茂科,等.一種面向BBS信息檢索的主題網(wǎng)絡(luò)爬蟲算法[J].鄭州大學(xué)學(xué)報(理學(xué)版),2010(6).

      【通聯(lián)編輯:代影】

      猜你喜歡
      Python語言
      工業(yè)物聯(lián)網(wǎng)智能邊緣計算應(yīng)用軟件的快捷開發(fā)與設(shè)計
      關(guān)于面向非計算機專業(yè)開設(shè)Python語言的幾點思考
      考試周刊(2018年23期)2018-02-07 00:15:42
      計算思維培養(yǎng)視域下《Python程序設(shè)計》課程的教學(xué)改革實踐
      在高中信息技術(shù)課中培養(yǎng)學(xué)生計算思維的有效方法探討
      基于KNN算法的手寫數(shù)字識別
      Python語言教學(xué)中問題解決能力和創(chuàng)新能力的培養(yǎng)實踐
      計算機教育(2017年9期)2017-09-28 19:06:16
      Python語言程序設(shè)計教學(xué)體系建設(shè)
      計算機教育(2017年8期)2017-09-01 14:51:42
      面向計算生態(tài)的Python語言入門課程教學(xué)方案
      計算機教育(2017年8期)2017-09-01 13:44:40
      基于Python語言和支持向量機的字符驗證碼識別
      論Python程序設(shè)計語言
      绍兴县| 明水县| 大埔区| 博客| 棋牌| 昌图县| 孝昌县| 肥城市| 刚察县| 托克逊县| 离岛区| 澄江县| 舟山市| 府谷县| 西林县| 汪清县| 革吉县| 东山县| 南京市| 分宜县| 望都县| 南阳市| 藁城市| 温州市| 岐山县| 思南县| 铁岭县| 长治县| 班戈县| 晋州市| 青河县| 兴安盟| 嘉祥县| 大埔县| 广河县| 洪江市| 平利县| 乐都县| 儋州市| 遂宁市| 岑溪市|