如何爬取Ajax数据)

如何爬取Ajax数据),针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

站在用户的角度思考问题,与客户深入沟通,找到交口网站设计与交口网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站建设、网站制作、企业官网、英文网站、手机端网站、网站推广、域名与空间、网页空间、企业邮箱。业务覆盖交口地区。

关于Ajax:其实现在很多网页不是一次加载完。而是边浏览边加载。像今日头条中的图片,看完加载的部分,再往下滑动,又加载出来一些图片,而url并没有变化,此时,页面加载就是Ajax加载。他的原理同样是发送请求,解析内容,渲染页面,但是他保证了页面的不刷新,url不改变。但是页面却在更新数据。

1、分析Ajax

首先打开今日头条的网页,在搜索栏输入街拍,切换到开发者模式(F12)

点击XMR,因为Ajax在底层是实现了XmlHttpRequest对象,简写XMR,

所以在XMR下都是Ajax请求。

再次刷新下页面,继续往下滑,我们可以看到有一些请求:

如何爬取Ajax数据)

分析一下Request URL,我们发现其中只有offset参数发生了改变。

其他的参数我们写成一样的就可以了。

这样我们就可以构造一个get_html()方法,实现获取到页面如下。

如何爬取Ajax数据)

如果你前面的文章都看了,那么理解这个方法是没有难度的。

2、找到图片的地址

如何爬取Ajax数据)

知道了图片在哪里,我们就写个get_image_url()方法,来获取到图片的连接。

如何爬取Ajax数据)

这里说一下,json数据上一篇有讲如何获取值:数据的存储(一)

3、下载图片并分类保存实现

如何爬取Ajax数据)

这里需要说一下:

os.chdir()是改变当前的路径,因为我用的是Notepad++,所以需要修改一下。

不然图片会存在安装Notepad++的位置。

os.path.exists()存在返回True,否则相反。

os.mkdir()是创建一个文件夹svse_image()方法

用md5加密实现图片名不一样

下载图片在以前的文章也讲过:python第二大神器requests

4、集中整合,实现多进程下载即可

如何爬取Ajax数据)

实现多进程,需要导入Pool库

from multiprocessing.pool import Pool

如果前面的文章都看了,这篇文章应该没有难度。重要的是了解Ajax的分析。如何去找。

最后上一下效果图:

如何爬取Ajax数据)

关于如何爬取Ajax数据)问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注创新互联行业资讯频道了解更多相关知识。


分享标题:如何爬取Ajax数据)
文章链接:http://ybzwz.com/article/jcppeg.html