您的位置: 首页 > 新闻资讯 > 正文

用Ajax进行爬虫抓取

发布时间:2019-10-31 15:18:30 来源:

大数据下的信息采集越演越烈,互联网行业可以说与爬虫有千丝万缕的联系,代理IP让大家能够冲破在爬虫时遇到的阻碍,有效提高了爬虫效率。


在我们爬取数据的过程中会使用Ajax抓取页面信息,这是为什么呢?


用Ajax进行爬虫抓取


有时候我们在用requests抓取页面的时候,得到的结果可能和在浏览器中看到的不一样:在浏览器中可以看到正常显示的页面数据,但是使用requests得到的结果并没有。这是因为requests获取的都是原始的HTML文档,而浏览器中的页面则是经过JavaScript处理数据后生成的结果,这些数据的来源有多种,可能是通过Ajax加载的,可能是包含在HTML文档中的,也可能是经过JavaScript和特定算法计算后生成的。


对于第一种情况,数据加载是一种异步加载方式,原始的页面最初不会包含某些数据,原始页面加载完后,会再向服务器请求某个接口获取数据,然后数据才被处理从而呈现到网页上,这其实就是发送了一个Ajax请求。


照Web发展的趋势来看,这种形式的页面越来越多。网页的原始HTML文档不会包含任何数据,数据都是通过Ajax统一加载后再呈现出来的,这样在Web开发上可以做到前后端分离,而且降低服务器直接渲染页面带来的压力。


所以如果遇到这样的页面,直接利用requests等库来抓取原始页面,是无法获取到有效数据的,这时需要分析网页后台向接口发送的Ajax请求,如果可以用requests来模拟Ajax请求,那么就可以成功抓取了。


我们在做爬虫的时候就需要先对网站进行分析,然后去制定合适的爬取策略。


相关文章内容简介

1 用Ajax进行爬虫抓取

  大数据下的信息采集越演越烈,互联网行业可以说与爬虫有千丝万缕的联系,代理IP让大家能够冲破在爬虫时遇到的阻碍,有效提高了爬虫效率。  在我们爬取数据的过程中会使用Ajax抓取页面信息,这是为什么呢?  有时候我们在用requests抓取页面的时候,得到的结果可能和在浏览器中看到的不一样:在浏览器中可以看到正常显示的页面数据,但是使... [阅读全文]