您的位置:首页 > 理论基础 > 计算机网络

python网络爬虫实战3——抓取新闻内文相关信息

2018-02-25 17:34 916 查看
详细代码见: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整理数据

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: