利用python的自动化测试库selenium来爬取头条新闻

     昨天看了头条的新闻,然后决定想去爬取头条的新闻,但是经过一轮分析之后发现头条新闻推送的方式是用ajax封装滚动刷新的,而不是传统的一页一页的翻页浏览的,于是这个不用想了,肯定是不能从传统的方式直接向服务器请求来获得网页真实内容。分析后发现,新闻的推送方式是以一个叫“?category=...”的xhr文件更新内容的,客户不断地滚动获得新的推送内容,在这过程中,其实是不断地向服务器的数据库发出请求,产生一个个的“?category=...”的xhr文件,在这些xhr文件中能够得到网页的请求url和网页具体内容的json文档。

    我一开始列举了好几个“?category=...”的xhr文件的url去找规律,其中我发现url中有以下参数是不同的,其他都一致:“max_behot_time”“max_behot_time_tmp” 分别是请求的当时时间时间戳,as和cp参数在一个叫home_4abea46.js 的js文件中能够找到相应的处理函数,经过一番地分析后,我将其移植到python中实现。


as和cp的原生实现
移植到python中的实现

   到这一步之后,我欣喜若狂,以为就快大功告成了,结果发现后面还有一个最最关键的参数_signature,而且的这个参数是的破解我无从下手,我到网上看看有没有大神找到破解方法,结果发现似乎没有什么好的破解方法。后来我还是被迫使用了python的必杀技,自动化测试库selenium。具体实现代码如下:


测试代码试爬效果

你可能感兴趣的:(利用python的自动化测试库selenium来爬取头条新闻)