Python爬虫应用实战-爬取网站漂亮小姐姐,可爱的小姐姐谁不爱呢?
前言
有时候我们会用requests抓取页面的时候,得到的结果可能和浏览器中看到的不一样:在浏览器中可以看到正常显示的页面数据,但是使用requests得到的结果并没有。这是因为requests获取的是原始的HTML文档,而浏览器中的页面则是经过javascript处理数据后生成的结果,这些数据的来源有多种,可能通过Ajax加载的,可能是包含在HTML文档当中,也有可能是经过javascript特定算法计算后生成的。
对于第一种情况:Ajax加载数据是一种异步加载方式,原始的农业面最初是不会包含这些数据的,原始页面加载完成之后,会再向服务器请求某个接口的数据,然后数据就会被处理从而呈现到网页上,这就是一个Ajax请求。
按照目前web的发展形式,这种页面会越来越多。网页的原始HTML中不会包含任何的数据,数据是通过Ajax统一加载后呈现出来的,这样在web开发上可以做到前后分离,而且降低了服务器直接渲染页面带来的压力。
因此,直接利用requests来获取原始HTML,是无法获取到有效的数据的,这时需要分析网页后台向接口发送的Ajax请求,如果可以用requests来模拟Ajax请求,那么就可以正常抓取数据了。
什么是Ajax
Ajax是异步的javascript和xml。它不是一门编程语言,而是利用javascript保证页面不被刷新,URL不变的情况下与服务器交换数据并更新部分网页的技术。
对于传统的网页来说,要想更新数据就必须刷新整个页面,但是有了Ajax之后,便可以在页面不全部刷新的情况下更新内容。在这个过程中实际上是在后台与服务器进行了数据的交换,获取到数据之后,再利用javascript改变网页,这样页面
文章来源: wenyusuran.blog.csdn.net,作者:文宇肃然,版权归原作者所有,如需转载,请联系作者。
原文链接:wenyusuran.blog.csdn.net/article/details/120503087
- 点赞
- 收藏
- 关注作者
评论(0)