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

        ?

        基于Python的新浪新聞爬蟲系統(tǒng)的設(shè)計與實現(xiàn)

        2018-02-25 06:21:08于韜李偉代麗偉
        電子技術(shù)與軟件工程 2018年9期
        關(guān)鍵詞:爬蟲大數(shù)據(jù)

        于韜 李偉 代麗偉

        摘要 隨著大數(shù)據(jù)時代的到來,數(shù)據(jù)量呈幾何倍增長。以新浪新聞為代表的一系列新聞檢索網(wǎng)站蘊含著大量的數(shù)據(jù)資源。本文以新浪新聞為研究對象,利用Python爬蟲技術(shù)實現(xiàn)網(wǎng)頁下載與網(wǎng)頁解析,完成了對目標(biāo)數(shù)據(jù)的高效獲取,并將獲取的信息進(jìn)行格式化存儲。實驗結(jié)果表明,本文所提出的程序?qū)崿F(xiàn)了網(wǎng)頁數(shù)據(jù)的快速獲取,為后續(xù)的數(shù)據(jù)挖掘提供支持。

        【關(guān)鍵詞】大數(shù)據(jù) Python 爬蟲 新浪新聞

        1 引言

        新浪新聞由新浪官方出品,及時發(fā)布全球新聞資訊,國內(nèi)國外要聞,精彩的體育賽事報道,金融財經(jīng)動向,影視娛樂事件,還有獨家微博“微”新聞,精彩隨你看,新聞、星座、笑話一個都不少。新聞是我們生活中的一部分,通過新浪的新聞板塊可以坐在家里看世界。如此多的新聞信息,其中蘊含的巨大信息量是不言而喻的,因此如何獲取是十分關(guān)鍵的。本文我們將通過爬蟲技術(shù)獲取相關(guān)新聞信息。

        Python作為一種語法簡潔的程序設(shè)計語言,對于爬蟲開發(fā)上有很多優(yōu)勢,在發(fā)送HTTP請求時,Python提供優(yōu)秀的第三方包譬如Requests,極大簡化了對網(wǎng)站的訪問請求。在解析HTML源碼時,提供的BeautifuISoup庫能用極簡短的代碼完成過濾html標(biāo)簽并提取文本的工作。利用Python中的pandas可以對獲取到的數(shù)據(jù)進(jìn)行整理、儲存。對于網(wǎng)站的反爬機(jī)制,Python提供了更為簡便的解決方案,可以使用Requests庫得到一個代理IP。Python擁有足夠多的簡潔的語法和庫的支持,使得它在爬蟲開發(fā)上具有很高的效率。

        本文提出的爬蟲程序通過獲取相關(guān)新聞信息,并將數(shù)據(jù)保存到本地,方便對數(shù)據(jù)的挖掘與分析。使用本程序可以節(jié)省獲取數(shù)據(jù)的時間,使用戶可以將更多精力放在數(shù)據(jù)分析上面。

        2 基于Python的新浪新聞爬蟲設(shè)計

        2.1 爬蟲系統(tǒng)設(shè)計需求

        設(shè)計爬蟲系統(tǒng)需要解決以下幾個問題:

        (1)評論數(shù)的獲?。和ㄟ^頁面鏈接獲取新聞id,然后傳遞獲取評論數(shù)。

        (2)頁面信息的提取:頁面上有我們需要的標(biāo)題、作者、摘要等信息。

        (3)分頁鏈接的獲取:獲取不同分頁的鏈接,以便獲取更多頁面信息。

        (4)網(wǎng)頁內(nèi)容的分析和管理:提取網(wǎng)頁信息,并將其存入數(shù)據(jù)庫或其他數(shù)據(jù)文件中。

        2.2 與爬蟲相關(guān)的python模塊

        2.2.1 網(wǎng)址管理器

        實現(xiàn)網(wǎng)址管理的方法有以下3類:

        (1) Python內(nèi)存儲存:適合存儲少量信息,將網(wǎng)址在儲存時分為兩類:已爬取和待爬取,放入兩個集合中進(jìn)行管理。

        (2)關(guān)系數(shù)據(jù)庫儲存:適合網(wǎng)址信息進(jìn)行永久性儲存,可以存到表中,建立兩個字段用來辨別是否爬取。

        (3)緩存數(shù)據(jù)庫儲存:適合儲存大量的網(wǎng)址信息

        2.2.2 網(wǎng)頁下載器

        網(wǎng)頁下載器是爬蟲程序的主要核心模塊。網(wǎng)頁的內(nèi)容一般是HTML格式,Python支持的網(wǎng)頁下載工具有兩類:

        (1) Python官方支持的基礎(chǔ)模塊中的urllib包

        (2) requests第三方工具包,功能強(qiáng)大。

        2.2.3 網(wǎng)頁解析器

        網(wǎng)頁解析器是對網(wǎng)頁內(nèi)容中進(jìn)行數(shù)據(jù)解析的工具。Python支持的網(wǎng)頁解析器有兩種:一種利用正則表達(dá)式可以將整個網(wǎng)頁文檔當(dāng)成一個字符串,使用模糊匹配的方式來提取出有價值的數(shù)據(jù);另一種是根據(jù)Html網(wǎng)頁創(chuàng)建成一個DOM樹,以樹的形式進(jìn)行各種節(jié)點的搜索遍歷。DOM的樹形結(jié)構(gòu)根據(jù)上下級關(guān)系,可以很方便的定位到各個元素。

        2.2.4 數(shù)據(jù)導(dǎo)出

        利用Python可以將數(shù)據(jù)導(dǎo)出為Excel格式或其它格式文件。導(dǎo)出數(shù)據(jù)時應(yīng)注意數(shù)據(jù)編碼問題,否則導(dǎo)出的文件可能會出現(xiàn)亂碼。如圖1所示。

        3 實驗設(shè)計

        我們通過新浪新聞API: http://news.smacom.cn/china/進(jìn)行抓取。爬蟲代碼由3個功能函數(shù)和一個主函數(shù)構(gòu)成:

        3.1 獲取詳細(xì)頁面內(nèi)文函數(shù)( getNews Detail)

        首先對詳細(xì)頁面的鏈接進(jìn)行下載:通過requests方法下載html文檔,接著通過BeautifulSoup進(jìn)行解析。然后通過select方法獲取文章標(biāo)題、來源以及編輯信息,由于時間的格式的特殊性,利用datatime獲取新聞發(fā)表的時間。對于新聞主體,通過for依次取段落,再通過jom方法將所有段落信息整合在一起。取評論數(shù)我們通過getCommentCounts方法進(jìn)行獲取。最后定義一個字典,將頁面的標(biāo)題、來源、時間等信息存儲到字典中。

        3.2 獲取評論數(shù)函數(shù)( getCommentCounts)

        由于通過直接觀察元素信息時找不到評論數(shù)信息,可能是通過JS方式添加上去的,因此需要對評論數(shù)鏈接進(jìn)行處理,而評論數(shù)鏈接與新聞id有關(guān),因此我們首先對新聞id進(jìn)行獲取。通過正則表達(dá)式獲取新聞id,在將新聞id放入評論數(shù)鏈接中,對此鏈接進(jìn)行解析,即可得到相應(yīng)的評論數(shù)。

        3.3 剖析清單鏈接函數(shù)( parseListLinks)

        在前兩個函數(shù)中我們已經(jīng)獲取到了頁面的詳細(xì)信息,利用parseListLinks函數(shù),我們獲取不同清單的鏈接,并結(jié)合getNewsDetail函數(shù)獲取清單上所有新聞信息。接著定義一個列表newsdetails,并將getNewsDetail函數(shù)獲取的信息儲存在列表中。

        3.4 主函數(shù)

        在主函數(shù)中可以自定義想要獲取的新聞頁數(shù)。由于每個清單有許多數(shù)據(jù)頁,我們加了一個for循環(huán)獲得分頁鏈接,通過parseListLinks方法依次獲取新聞信息,我們利用pandas中DataFrame方法對數(shù)據(jù)進(jìn)行整理,最后用to excel方法將數(shù)據(jù)保存為Excel格式。

        爬取流程圖如圖2所示。

        4 實驗結(jié)果

        通過實驗獲取新浪新聞的論文信息,運行結(jié)果如圖3所示,實驗采集了7500條信息,為后期的數(shù)據(jù)處理提供了有力支撐。

        5 結(jié)語

        文章分析了新浪爬蟲獲取數(shù)據(jù)時的細(xì)節(jié)實現(xiàn),對國內(nèi)新聞API進(jìn)行爬取,使用requests方法下載網(wǎng)頁html文檔,并用BeautifulSoup進(jìn)行解析,進(jìn)而獲得相關(guān)的數(shù)據(jù)信息。總體來說,爬蟲技術(shù)具有較高的應(yīng)用價值與無限的潛在價值,通過抓取數(shù)據(jù),可以挖掘出更有價值的信息。

        參考文獻(xiàn)

        [1]魏冬梅,何忠秀等,基于Python的Web信息獲取方法研究[J].軟件導(dǎo)刊,2018(01).

        [2]孫立偉,何國輝等,網(wǎng)絡(luò)爬蟲技術(shù)的研究[J].電腦知識與技術(shù),2010 (05).

        [3]周中華,張惠,然謝江,基于Python的新浪微博數(shù)據(jù)爬蟲[J].計算機(jī)應(yīng)用2014 (11).

        [4]張明杰,基于網(wǎng)絡(luò)爬蟲技術(shù)的輿情數(shù)據(jù)采集系統(tǒng)設(shè)計與實現(xiàn)[J],現(xiàn)代計算機(jī)(專業(yè)版)2015 (06).

        [5]朱燁行,張明杰,微博數(shù)據(jù)采集的設(shè)計與實現(xiàn)[J].電腦編程技巧與維護(hù),2017 (09).

        猜你喜歡
        爬蟲大數(shù)據(jù)
        利用網(wǎng)絡(luò)爬蟲技術(shù)驗證房地產(chǎn)灰犀牛之說
        基于Python的網(wǎng)絡(luò)爬蟲和反爬蟲技術(shù)研究
        利用爬蟲技術(shù)的Geo-Gnutel la VANET流量采集
        電子測試(2018年1期)2018-04-18 11:53:04
        大數(shù)據(jù)環(huán)境下基于python的網(wǎng)絡(luò)爬蟲技術(shù)
        電子制作(2017年9期)2017-04-17 03:00:46
        基于大數(shù)據(jù)背景下的智慧城市建設(shè)研究
        科技視界(2016年20期)2016-09-29 10:53:22
        日本在线观看一区二区三| 天天中文字幕av天天爽| 亚洲精品中文字幕乱码人妻| 婷婷丁香开心五月综合| 国内精品久久久久伊人av| 久久精品国产亚洲av麻| 91热国内精品永久免费观看| 国产麻豆极品高清另类| 久久久久亚洲av成人人电影| 牲欲强的熟妇农村老妇女| 亚洲综合五月天欧美| 国产剧情亚洲一区二区三区| 精品系列无码一区二区三区| 少妇裸淫交视频免费看| 日本熟女人妻一区二区| 久久精品国产亚洲av无码偷窥 | 无码AV大香线蕉伊人久久| 日本一级片一区二区三区| 欧美大片aaaaa免费观看| 亚洲欧美aⅴ在线资源| 人妻无码一区二区在线影院| 亚洲女同性恋在线播放专区| 国产亚洲欧美精品永久| 日韩亚洲av无码一区二区不卡| 正在播放一区| 日本中文字幕一区二区在线观看 | 亚洲综合色婷婷七月丁香| 真实国产老熟女粗口对白| 亚洲国产精品午夜电影| 国产一区三区二区视频在线观看 | 亚洲av在线观看播放| 国产成人无码18禁午夜福利p| 可以免费观看的毛片| 国产精品久久这里只有精品| 白白色最新福利视频二| 国产亚洲欧美精品永久| 中国丰满熟妇av| 免费国产调教视频在线观看| 日产一区一区三区区别| 精品综合久久久久久888蜜芽| 精产国品一二三产品蜜桃|