从网页抓取数据(新浪新闻国内新闻页静态网页数据在函数中的应用)

优采云 发布时间: 2021-11-10 19:08

  从网页抓取数据(新浪新闻国内新闻页静态网页数据在函数中的应用)

  昨天,一个朋友来找我。新浪新闻国内新闻页面的其他部分是静态网页,但左下方的最新新闻部分不是静态网页,也没有json数据。让我帮你抓住它。大概看了一下,是js加载的,数据在js函数里,很有意思,所以分享给大家看看!

  抓取目标

  

  我们今天的目标是上图的红框部分。首先我们确定这部分内容不在网页源码中,属于js加载的部分,点击翻页后没有json数据传输!

  

  但是发现有个js请求,点击请求,是一行js函数代码,我们复制到json的view viewer,然后格式化看看结果

  

  

  发现可能有我们需要的内容,比如url、title、intro这3个参数,猜测是对应的新闻网址、标题、介绍

  

  只是它的内容,需要处理,我们写在代码里看看

  开始写代码

  先导入库,因为需要截取字符串的最后一部分,所以使用requests库来获取请求,重新匹配内容即可。然后我们先匹配上面的3个item

  

  可以看到,url中有\\,标题和介绍都是\u4e09的形式。这些是我们需要处理的后续步骤!

  先用replace函数去掉url中的\\,就可以得到url了,下面的\u4e09是unicode编码,可以直接解码内容,直接写代码

  

  使用eval函数进行解码,可以以u"+unicode编码内容+"!

  这样就把这个页面上所有新闻和URL相关的内容都取出来了,在外层加了一个循环来爬取所有的新闻页面,任务就完成了!

  

  后记

  新浪新闻的页面js功能比较简单,可以直接抓取数据。如果是比较复杂的功能,就需要了解前端知识。这就是学习爬虫需要学习前端知识的原因!

  ps:上面使用的json查看器是第三方的网站,你可以直接百度找很多,当然你也可以直接修改上面抓包的内容,然后用json读取数据!

  基本代码不多。有看不清楚的小伙伴可以私信我索取代码或者一起研究爬虫!

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线