爬虫 - 抓取新浪新闻中心每周点击量排行

时间:2022-07-27 20:41:12

思路分析

  1. 用reuqests发送GET请求,发现抓取的信息的数据源(url)包含在返回的HTML中,获取该数据源(url),再用requests库发送GET请求获取数据;(这个不同于AJAX,因为数据源不用在Chrome debugger中查看XHR对象获取。网站的原理是从数据源获取数据,然后用JS渲染。数据源的API在返回的HTML中就可以找到,很方便。)
  2. 获取的数据其实是一个JS对象(var x = {}),里面包含了每段新闻的JSON字符串; 并不是单纯一个JSON字符串,所以要用re正则表达式提取;
  3. 遍历每一条的新闻,将新闻JSON字符串转换为Python字典,那就可以用get方法获取所要的信息。

源码

https://github.com/janetat/Python-toys/tree/master/8.spider-sina-hotnews