网页爬虫抓取百度图片( 谷歌浏览器的查找功能发现图片的链接保存在页面源代码中)
优采云 发布时间: 2021-12-25 10:09网页爬虫抓取百度图片(
谷歌浏览器的查找功能发现图片的链接保存在页面源代码中)
Python爬虫之四(百度图片爬取)
我们在观察百度图片的时候,发现他的图片好像没完没了,一直可以下拉。然后我们观察他的网页,发现刷新和下拉开始的时候源代码不一样,增加了一些内容。通过谷歌浏览器的搜索功能找到的图片链接保存在这些新添加的代码中。这是异步加载。需要的内容不是直接在页面源码中,而是一次又一次的加载。
1、查看网络->下拉加载更多图片,发现加载文件很多,选择XRL文件,每三十张图片加载一个XRL文件。
2、选择Headers看到一个Request URL链接,可以用浏览器打开,就是加载的XRL文件的内容,但是比较乱,不方便观察(也可以点击Response,就是他的内容,和用浏览器打开是一样的)。您也可以单击它旁边的 Preivew。这个界面是一个XRL文件,但是已经像网页的源代码一样进行了整理,更容易观察。点击后可以观察内容,链接很多。
如下图,一共有30个,每个都收录
一张图片,然后我们需要找到它们的链接。
看了很多别人的博客,知道页面上有四种图片链接,middleURL、hoverURL、thumbURL、objURL。其中objURL(不是ObjURL)是原图,我们也下载了这个。
那么就该写代码了,只需要说两件事:
1、params,观察每个XRL文件的Query String Parameters,你会发现它和XRL链接是一样的,而且每个都有几个不同的字段,然后你可以发现pn是第一页* 30,gsm是pn十六进制数。我不知道最后一串数字是什么,但似乎没有关系,所以我构造了一个函数来获取图像链接资源。
2、找到objURL链接。有了XRL文件,可以直接用正则表达式匹配:'objURL":"(.*?)",'。然后我们发现是乱码,但是其他的链接是可以下载的。我试过thumbURL,然后下载也很好,正常,但是为什么objURL会这样呢?
objURL:"ippr_z2C$qAzdH3FAzdH3Ft_z&e3B8080nv1g_z&e3Bv54AzdH3FduigehAzdH3FYWxqwGBuAzdH3Fv4fnAzdH3F1xskerTk54vg3B&
因为他是加密的(不明白为什么其他博客好像没有这个问题,可能以前没有),看到一个博客解析百度objURL
然后下面是所有的代码
参考了几篇博客,比我的详细(我太懒了)
1
2
3
4
一些反爬虫问题
关于标头(UA、referer、cookies)
爬虫实战7-对抗爬虫的对策
关于反爬行动物的一些结论
之前爬取的图片无法下载,一直403禁止访问,只是因为没有添加referer
'推荐人':'#39;