999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Python的新浪新聞爬蟲系統的設計與實現

2018-02-25 06:21:08于韜李偉代麗偉
電子技術與軟件工程 2018年9期
關鍵詞:大數據

于韜 李偉 代麗偉

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

【關鍵詞】大數據 Python 爬蟲 新浪新聞

1 引言

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

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

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

2 基于Python的新浪新聞爬蟲設計

2.1 爬蟲系統設計需求

設計爬蟲系統需要解決以下幾個問題:

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

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

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

(4)網頁內容的分析和管理:提取網頁信息,并將其存入數據庫或其他數據文件中。

2.2 與爬蟲相關的python模塊

2.2.1 網址管理器

實現網址管理的方法有以下3類:

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

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

(3)緩存數據庫儲存:適合儲存大量的網址信息

2.2.2 網頁下載器

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

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

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

2.2.3 網頁解析器

網頁解析器是對網頁內容中進行數據解析的工具。Python支持的網頁解析器有兩種:一種利用正則表達式可以將整個網頁文檔當成一個字符串,使用模糊匹配的方式來提取出有價值的數據;另一種是根據Html網頁創建成一個DOM樹,以樹的形式進行各種節點的搜索遍歷。DOM的樹形結構根據上下級關系,可以很方便的定位到各個元素。

2.2.4 數據導出

利用Python可以將數據導出為Excel格式或其它格式文件。導出數據時應注意數據編碼問題,否則導出的文件可能會出現亂碼。如圖1所示。

3 實驗設計

我們通過新浪新聞API: http://news.smacom.cn/china/進行抓取。爬蟲代碼由3個功能函數和一個主函數構成:

3.1 獲取詳細頁面內文函數( getNews Detail)

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

3.2 獲取評論數函數( getCommentCounts)

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

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

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

3.4 主函數

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

爬取流程圖如圖2所示。

4 實驗結果

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

5 結語

文章分析了新浪爬蟲獲取數據時的細節實現,對國內新聞API進行爬取,使用requests方法下載網頁html文檔,并用BeautifulSoup進行解析,進而獲得相關的數據信息??傮w來說,爬蟲技術具有較高的應用價值與無限的潛在價值,通過抓取數據,可以挖掘出更有價值的信息。

參考文獻

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

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

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

[4]張明杰,基于網絡爬蟲技術的輿情數據采集系統設計與實現[J],現代計算機(專業版)2015 (06).

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

猜你喜歡
大數據
大數據環境下基于移動客戶端的傳統媒體轉型思路
新聞世界(2016年10期)2016-10-11 20:13:53
基于大數據背景下的智慧城市建設研究
科技視界(2016年20期)2016-09-29 10:53:22
數據+輿情:南方報業創新轉型提高服務能力的探索
中國記者(2016年6期)2016-08-26 12:36:20
主站蜘蛛池模板: 国产美女丝袜高潮| 国产香蕉97碰碰视频VA碰碰看 | 国产精品亚洲一区二区在线观看| 国产极品美女在线| 中文字幕永久视频| 国产精品亚洲精品爽爽| 亚洲最大在线观看| 国产91精品调教在线播放| 老色鬼久久亚洲AV综合| 国产精品欧美在线观看| 亚洲男人的天堂网| 亚洲天堂网在线观看视频| 伊大人香蕉久久网欧美| 亚洲第一黄色网| 亚洲精品黄| 国产传媒一区二区三区四区五区| 欧美高清视频一区二区三区| 91探花在线观看国产最新| 国产av无码日韩av无码网站| 萌白酱国产一区二区| 亚洲欧美另类专区| 热久久这里是精品6免费观看| 国产内射一区亚洲| 亚洲天堂区| 国产在线视频自拍| 欧美午夜小视频| 在线色国产| 中文字幕佐山爱一区二区免费| 99精品这里只有精品高清视频| 国产网友愉拍精品| 99热这里只有免费国产精品| 特级毛片免费视频| 国内精自视频品线一二区| 亚洲精品视频免费观看| 九九香蕉视频| 国产精品久久久久鬼色| 夜夜高潮夜夜爽国产伦精品| 日韩在线中文| 欧美三级日韩三级| 原味小视频在线www国产| 国产精品真实对白精彩久久| 在线看片中文字幕| 狠狠干欧美| 欧美日韩午夜| 欧美一区二区三区国产精品| 一级成人a毛片免费播放| 中文字幕永久视频| 精品人妻一区无码视频| 久久这里只有精品国产99| 亚洲午夜国产精品无卡| 国产福利一区二区在线观看| 天天综合色天天综合网| 激情综合网激情综合| 这里只有精品在线播放| 国产特一级毛片| 亚洲欧美极品| 免费一级毛片在线观看| 日韩无码视频播放| 青青青视频91在线 | 亚洲欧美综合在线观看| 91日本在线观看亚洲精品| 久久精品午夜视频| 久久香蕉国产线看观看式| 色婷婷天天综合在线| 亚洲免费福利视频| 国产精选小视频在线观看| 欧美视频在线不卡| 久久综合丝袜长腿丝袜| 黄色网在线| 亚洲成a人片77777在线播放| 亚洲欧美在线看片AI| 国产无码精品在线播放| 国产又色又爽又黄| 思思热精品在线8| 国产高清不卡视频| 色天天综合| 美女视频黄又黄又免费高清| 亚洲系列中文字幕一区二区| 在线一级毛片| 二级特黄绝大片免费视频大片| 噜噜噜久久| 国产欧美日韩在线在线不卡视频|