python網絡爬蟲實戰3——抓取新聞內文相關信息

詳細代碼見:http://download.csdn.net/download/vinsuan1993/10258596

一、需求說明

我們通過上一篇博客(http://blog.csdn.net/c406495762/article/details/78123502#t10)可以獲取到具體某個新聞的URL,當我們點擊進去,就可以看到該新聞的內文。在這裏,我們需要抓取新聞內文的標題、發佈時間、來源、正文、編輯者、評論數等。


二、代碼範例

2.1 抓取新聞內文頁面


代碼:


2.2 抓取新聞內文標題


代碼:


2.3 取得新聞發佈時間和來源信息


代碼:


注:時間和日期之間有空格;便於批量處理對於來源的擷取,我們選擇“.source”。

2.4 整理新聞正文


注:兩種寫法。

2.5 擷取新聞編輯者名稱


三、獲取新聞評論數

爲什麼將獲取新聞評論數單獨作爲一個大標題?是因爲獲取新聞表論數的方法跟前面不一樣,它並不包含在doc,而是在JS中。




代碼示例:


爲了批量獲取每則新聞的評論數,我們需要分析JS的請求字符串

http://comment5.news.sina.com.cn/page/info?version=1&format=json&channel=gn&newsid=comos-fyrvspi1334876&group=undefined&compress=0&ie=utf-8&oe=utf-8&page=1&page_size=3&t_size=3&h_size=3&thread=1&callback=jsonp_1519549190225&_=1519549190225

我們發現最後的“&callback=jsonp_1519549190225&_=1519549190225”可以去掉,“fyrvspi1334876”對應每個新聞請求的URL“http://news.sina.com.cn/c/nd/2018-02-24/doc-ifyrvspi1334876.shtml”,所以我們可以通過新聞URL獲取新聞標識符,並完成JS請求的批量填充。


構建評論數抽取函數:


四、建立內文信心抽取函式


五、關於分頁鏈接的處理


首先獲取單頁上所有新聞的URL:


代碼如下:


根據上面獲得的單個分頁上每個新聞的URL,我們就可以抓取單個分頁上新聞的所有信息,並建立函數:


我們仔細分析請求分析的鏈接:

http://api.roll.news.sina.com.cn/zt_list?channel=news&cat_1=gnxw&cat_2==gdxw1||=gatxw||=\
zs-pl||=mtjj&level==1||=2&show_ext=1&show_all=1&show_num=22&tag=1&format=json\

&page=3&callback=newsloadercallback&_=1519464263527

我們只要修改紅色部分的數字,就可以實現多分頁。


六、 使用Panda整理數據



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章