当前位置: > python爬虫 >

爬取ajax渲染的网页
栏目分类:python爬虫   发布日期:2019年03月16日 01:04:29   浏览次数:

大家好,我是爱吃苹果的宇文拓,我今天给大家讲的是关于ajax渲染网页的抓取
       由于反爬技术的不断进步,现在有些网站的数据是利用ajax渲染而成的。如果我们直接用requests请求网页源码,是得不到想要的数据的,因为数据没有在网页源代码中呈现,而是通过异步加载(ajax渲染)而来。因此我们在爬取想要的数据时,不能使用常规手段来抓取数据,接下来我将讲解关于爬取这类网站的思路。

        动态渲染,其实就是异步加载数据,即在原始页面加载完毕后,会再像服务器请求某个接口获取数据,然而此过程不用刷新页面,在我们拿到数据后然后处理从而呈现到网页上。这其实就是一个ajax请求。我们今天就以今日头条网站为例,讲解爬取ajax数据的大致流程。

如图打开今日头条网站,我们抓取新闻列表。





打开网页源码发现我们想要抓取的数据根本没有包含在网页源代码中。






此时我们可以考虑数据加载方式是否为动态渲染了。打开开发者工具(F12)然后选中(ajax加载)XHR过滤条件。然后刷新浏览器





我们不断下拉浏览器窗口,发现下图所指的链接类型在不断增加。说明此链接就是ajax渲染所请求的接口,请求此链接,服务器就会返回我们想要的数据。






我们查看此接口返回的详细信息,我们发现,此接口返回的是一个json格式的信息




我们用python抓取一个ajax请求所返回的所有标题信息。所有代码如下







运行结果如下





总结:今天我们讲解了如何分析一个动态渲染页面,并找到相应的接口,用爬虫获取到我们想要的数据。动态渲染页面在爬虫的时候经常遇到,以后遇到动态渲染页面时,可以用我的这个办法,先找到接口,然后请求接口拿到我们想要的数据。
 

相关热词:

相关内容
热门关键词
python字符串
     
python教程 python爬虫 python人工智能 Python+大数据 python问答