• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于python語言的web數(shù)據(jù)挖掘與分析研究

    2018-12-18 01:08:58吳爽
    電腦知識與技術(shù) 2018年27期
    關(guān)鍵詞:數(shù)據(jù)分析

    吳爽

    摘要:該文介紹了Web采集技術(shù),并對其實現(xiàn)原理及關(guān)鍵技術(shù)進行研究分析,著重介紹了基于Python語言的爬蟲數(shù)據(jù)采集技術(shù)在Web信息采集中的應(yīng)用,提出以Python及相關(guān)庫為主要工具,并結(jié)合模塊化實現(xiàn)方法,建立基于Python技術(shù)的Web文本信息采集系統(tǒng)框架,并以百度百科為例,實現(xiàn)信息的快速搜索與相關(guān)信息的數(shù)據(jù)挖掘,并對檢索數(shù)據(jù)進行分析和研究,得出相關(guān)結(jié)論。

    關(guān)鍵詞:Python;Web;數(shù)據(jù)爬??;數(shù)據(jù)分析

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

    隨著互聯(lián)網(wǎng)技術(shù)的快速發(fā)展,Web作為廣大互聯(lián)網(wǎng)用戶共享信息而發(fā)展起來的一種internet應(yīng)用,其承載的信息量呈幾何級數(shù)增長,Web的應(yīng)用與發(fā)展為人們帶來了巨大的社會效益和經(jīng)濟效益,已經(jīng)成為用戶獲取信息的重要來源。Web信息急劇膨脹的同時,如何有效篩選和利用信息面臨巨大的挑戰(zhàn)。同時,Web內(nèi)容的多樣性與非結(jié)構(gòu)性,導(dǎo)致有效信息獲取困難。借助于Python技術(shù)實現(xiàn)Web信息的有效提取和挖掘,能夠在多個領(lǐng)域發(fā)揮重要作用,極大地提高數(shù)據(jù)搜集與分析的效率,促進社會生產(chǎn)力的提升。

    1 Web信息挖掘技術(shù)概述

    1.1 web數(shù)據(jù)挖掘技術(shù)定義

    Web數(shù)據(jù)挖掘是通過模擬用戶正常的瀏覽器行為,并設(shè)置一定的規(guī)則,從而獲取Web頁面指定信息。Web數(shù)據(jù)挖掘的最終目的是將非結(jié)構(gòu)化的信息從海量的信息提取并以統(tǒng)一的方式進行存儲(以CSV、JSON、XML等模式存儲)。在此過程中,將涉及網(wǎng)絡(luò)爬蟲、數(shù)據(jù)結(jié)構(gòu)化與正則表達(dá)式等多種關(guān)鍵技術(shù)。

    1.2 數(shù)據(jù)挖掘技術(shù)應(yīng)用優(yōu)勢

    隨著互聯(lián)網(wǎng)技術(shù)的應(yīng)用與普及,網(wǎng)絡(luò)中信息資源極為豐富,但大多數(shù)信息以無結(jié)構(gòu)的文筆形式存在,導(dǎo)致信息采集與歸類變得極為困難。在數(shù)據(jù)挖掘技術(shù)出現(xiàn)之前,用戶要將有效的信息進行采集和歸類須采用手動復(fù)制粘貼的方式,不僅耗時耗力,而且數(shù)據(jù)質(zhì)量較差,難以實現(xiàn)數(shù)據(jù)采集與分析的自動化。而基于Python語言的網(wǎng)絡(luò)爬蟲技術(shù),具有速度快、準(zhǔn)確性高等特點,能夠有效提升數(shù)據(jù)采集與分析效率,提高數(shù)據(jù)采集質(zhì)量。同時人工操作難免存在數(shù)據(jù)錯誤、遺漏等問題,在統(tǒng)計較大數(shù)據(jù)時,糾錯難度極大,而借助網(wǎng)絡(luò)爬蟲技術(shù),數(shù)據(jù)準(zhǔn)確性較高,即使存在問題,用戶可通過規(guī)則、程序調(diào)整即可完成糾錯,具有無可比擬的應(yīng)用優(yōu)勢。

    1.3 網(wǎng)絡(luò)爬蟲工作原理

    網(wǎng)絡(luò)爬蟲是根據(jù)制定的規(guī)則對Web頁面進行遍歷查詢,從而自動抓取有效信息的腳本。網(wǎng)絡(luò)爬蟲的主要原理是通過互聯(lián)網(wǎng)指定的子集合中讀取URL,訪問相應(yīng)的Web內(nèi)容,并遍歷Web頁面所包含的鏈接,并遍歷鏈接繼續(xù)爬取包含的子頁面內(nèi)容,從而完成數(shù)據(jù)的收集、分類和整理。

    1.4 不同爬蟲算法的比較

    當(dāng)前網(wǎng)絡(luò)爬蟲核心算法主要包括廣度優(yōu)先、深度優(yōu)先、Partial PageRank及Opic爬蟲算法。不同爬蟲算法各有優(yōu)劣,應(yīng)結(jié)合實際應(yīng)用場景進行合理選擇。

    1.4.1 廣度優(yōu)先策略

    該方法是根據(jù)Web內(nèi)容目錄層級,先爬取起始頁面同一層級的頁面,而后將爬取的鏈接放在隊列中,從而實現(xiàn)向外延伸,盡可能多地獲取鏈接信息,并不斷向下一層級深入。該方法能夠?qū)崿F(xiàn)爬蟲的并行處理,提高Web信息抓取速度。因此,廣度優(yōu)先策略是應(yīng)用最為廣泛的爬蟲算法。同時,該算法不足之處在于挖掘深層次目錄所花費的時間較長。

    1.4.2 深度優(yōu)先策略

    深度優(yōu)先策略是指爬蟲依次訪問當(dāng)前頁面直至最深目錄,并在完成一個分支后返回,繼續(xù)爬去另一個分支,當(dāng)所有的鏈接遍歷結(jié)束后,爬蟲任務(wù)才會結(jié)束。該方法能夠保證爬蟲挖掘信息的深度,但在層次較深的站點信息挖掘時將消耗大量的系統(tǒng)資源。

    1.4.3 Partial PageRank策略

    該算法是爬蟲從起始頁開始后,根據(jù)計算的Web頁面PageRank值確定該頁面的爬取價值,并優(yōu)先爬取PageRank值大的頁面,從而加快爬蟲執(zhí)行效率,能夠取得較好的遍歷效果,但可能與全部遍歷結(jié)果存在一定的偏差,進而導(dǎo)致數(shù)據(jù)準(zhǔn)確性降低。

    1.4.4 Opic策略

    該算法可被視為一種改進型的PageRank算法,開始前,各頁面都會被賦予相同的值,當(dāng)頁面被下載后,其值將平均分配給頁面中連接,并情況當(dāng)前頁面的值,爬蟲根據(jù)值的大小確定優(yōu)先級,優(yōu)先下載值最大的頁面。該算法不需要迭代計算,適用于實時計算。

    1.5 數(shù)據(jù)結(jié)構(gòu)化存儲

    大部分信息以無結(jié)構(gòu)的文本形式存在,直接歸類和利用存在一定的困難,而通過結(jié)構(gòu)化存儲的方式進行存儲,即將Web頁面中的無結(jié)構(gòu)信息抽取出來并以結(jié)構(gòu)化的方式存儲到本地,從而實現(xiàn)數(shù)據(jù)存儲的規(guī)范、統(tǒng)一。此過程都是自動化執(zhí)行操作,不需要人工干預(yù),用戶可結(jié)合應(yīng)用場景自行選擇數(shù)據(jù)庫、XML、CSV等存儲方式。如選用數(shù)據(jù)庫作為存儲形式時,Web信息則以二維表結(jié)構(gòu)的形式存儲,法具有速度快、準(zhǔn)確性高等特點,能夠滿足多線程數(shù)據(jù)挖掘時數(shù)據(jù)存儲要求。

    1.6 正則表達(dá)式

    Web頁面大多為Html格式存在,而Html頁面是由各種語義對象構(gòu)成,不同的對象均存在不同的標(biāo)記,通過對Html頁面進行解析,并基于正則表達(dá)式進行匹配,能夠?qū)崿F(xiàn)對特定字符串信息的查找與提取。例如,在爬取某包含“is”的Web頁面源代碼時,可通過matchObj = re.match( r'(.*) is (.*?) .*', line, re.M|re.I)的方式進行信息提取,從而對包含“is”的字符串進行自動匹配并輸出相關(guān)內(nèi)容。在此案例中,( r'(.*) is (.*?) .*', line, re.M|re.I)即為匹配的正則表達(dá)式,能夠為數(shù)據(jù)提取提供方法。此外,為了適應(yīng)頁面變化、網(wǎng)站升級等,確保匹配更加穩(wěn)定,用戶還可以使用Python自帶的模塊及第三方庫,對Web頁面內(nèi)容進行解析和提取。

    2 Web數(shù)據(jù)挖掘系統(tǒng)設(shè)計

    在系統(tǒng)設(shè)計和編寫時,應(yīng)按模塊化思想對系統(tǒng)功能進行合理劃分,實現(xiàn)模塊功能分類,便于代碼維護和調(diào)試。

    2.1 爬蟲功能設(shè)計

    通過設(shè)置定時任務(wù),當(dāng)符合任務(wù)執(zhí)行條件時,系統(tǒng)根據(jù)特定的起始Web頁面進行正則匹配,并對符合正在匹配的鏈接進行抓取,對其中包含的符合要求的數(shù)據(jù)進行抓取。最后,將獲得的信息與數(shù)據(jù)進行對比,如數(shù)據(jù)庫中已存在相關(guān)信息則停止,不存在則插入更新信息。例如,根據(jù)指定的鏈接,收集百度百科詞條內(nèi)容,建立鏈接并分析其頁面特征。首先,利用urllib2建立與服務(wù)器鏈接,當(dāng)服務(wù)器收到請求后,返回對應(yīng)的HTTP應(yīng)答,腳本內(nèi)容如下:

    fromurllib.request import urlopen

    from bs4 import BeautifulSoup

    html = urlopen(' https://baike.baidu.com/')

    bsObj = BeautifulSoup(html, 'html.parser')

    t1 = bsObj.find_all('a')

    for t2 in t1:

    t3 = t2.get('href')

    print(t3)

    通過該方法能夠獲取百度百科頁面包含的所有超鏈接。其次,設(shè)置正則表達(dá)式,對獲取的URL進行篩選和匹配。在此過程中,可使用BeautifulSoup模塊獲取URL標(biāo)簽,并使用re模塊構(gòu)建正則表達(dá)式,以便于篩選符合條件的url。如下所示。

    import re

    from bs4 import BeautifulSoup

    print bsObj。prettify

    urls=soup.findAll(”a”,hrel=True)

    defgetLink(countryUrl);

    html = urlopen(' https://baike.baidu.com/'+ itemUrl)

    bsObj = BeautifulSoup(html, 'html.parser')

    returnbsObj.finall(“a”,href=re.compie(“”(/item/)((??。海?)* basicInfo-item value”))

    links=getLinks(“https://baike.baidu.com/item/%E5%9B%BD%E5%AE%B6/17205”)

    whilelen(links)>0

    links=getLinks(newCountry)

    for link in bsObj.findALL(“a”)

    if “href” in link.attrs;

    print(links.attrs[‘href]

    通過上述方式,對百度百科數(shù)據(jù)進行篩選與提取,從而下載并獲得相應(yīng)的數(shù)據(jù)信息。

    2.2 爬蟲功能設(shè)計

    根據(jù)已下載的Web數(shù)據(jù),可借助于Python語言進行相應(yīng)的處理和分析。例如,我們可以借助numpy數(shù)值計算擴展進行數(shù)據(jù)分析,實現(xiàn)對其中的字詞出現(xiàn)頻次進行分析,實例如下:

    importnumpy

    segStat=segmentDataFrame.groupby(

    by='segment'

    )['segment'].agg({'計數(shù)':numpy.size}).reset_index().sort(

    columns=['計數(shù)'],

    ascending=False)

    在此基礎(chǔ)上,借助第三方庫WordCloud生成大數(shù)據(jù)詞云圖,

    fromwordcloud import WordCloud

    importmatplotlib.pyplot as plt

    wordcloud=WordCloud(

    font_path='字體路徑\simhei.ttf',

    background_color='black')

    words=fSegStat.set_index('segment').to_dict()

    wordcloud.fit_words(words['計數(shù)'])

    plt.imshow(wordcloud)

    plt.close()

    從而得出相關(guān)頁面的詞頻詞云圖。由此可見,中國、人民、黨和發(fā)展等詞匯出現(xiàn)次數(shù)較多。

    3 結(jié)束語

    本文著重介紹了利用Python語言進行Web數(shù)據(jù)進行挖掘和分析的原理及方法,重點分析了網(wǎng)絡(luò)爬蟲的算法優(yōu)勢及應(yīng)用環(huán)境,并就正則表達(dá)式、數(shù)據(jù)存儲方式、數(shù)據(jù)抓取過程及分析方法進行了闡述,可見基于Python語言的網(wǎng)絡(luò)爬蟲在數(shù)據(jù)抓取與應(yīng)用中具有顯著的優(yōu)勢,能夠?qū)崿F(xiàn)數(shù)據(jù)提取的自動化、個性化,極大提升了數(shù)據(jù)搜索與分析的效率與質(zhì)量。在數(shù)據(jù)爬取過程中,用戶應(yīng)考慮數(shù)據(jù)爬蟲算法優(yōu)化和調(diào)整,結(jié)合Python多線程技術(shù),實現(xiàn)下載緩存優(yōu)化,提高數(shù)據(jù)挖掘的性能。

    參考文獻:

    [1] 熊暢.基于Python爬蟲技術(shù)的網(wǎng)頁數(shù)據(jù)抓取與分析研究[J].數(shù)字技術(shù)與應(yīng)用,2017(9):35-36.

    [2] 陳琳,李容.基于動態(tài)Web的Python多線程空氣質(zhì)量數(shù)據(jù)程序設(shè)計[J].成都信息工程大學(xué)學(xué)報,2016,31(2):180-184.

    [3] 齊鵬,李隱峰,宋玉偉.基于Python的Web數(shù)據(jù)采集技術(shù)[J].電子科技,2012,25(11):118-120. [通聯(lián)編輯:王力]

    猜你喜歡
    數(shù)據(jù)分析
    我校如何利用體育大課間活動解決男生引體向上這個薄弱環(huán)節(jié)
    體育時空(2016年8期)2016-10-25 18:02:39
    Excel電子表格在財務(wù)日常工作中的應(yīng)用
    淺析大數(shù)據(jù)時代背景下的市場營銷策略
    新常態(tài)下集團公司內(nèi)部審計工作研究
    中國市場(2016年36期)2016-10-19 04:31:23
    淺析大數(shù)據(jù)時代對企業(yè)營銷模式的影響
    基于讀者到館行為數(shù)據(jù)分析的高校圖書館服務(wù)優(yōu)化建議
    科技視界(2016年22期)2016-10-18 14:37:36
    阿图什市| 临城县| 修武县| 潞城市| 平泉县| 梅河口市| 武川县| 永宁县| 景宁| 尚义县| 吴堡县| 同仁县| 盐池县| 清徐县| 历史| 谢通门县| 金川县| 平南县| 南开区| 斗六市| 长阳| 安丘市| 盘山县| 渑池县| 眉山市| 许昌县| 萨嘎县| 简阳市| 黔江区| 杭州市| 高雄县| 叶城县| 通许县| 连江县| 阿拉尔市| 连州市| 寿光市| 青海省| 太和县| 泸州市| 吴桥县|