初学python,写个小爬虫去爬取百度图片的图片

如果是静态加载图片的话 直接requests.get(url)获取源码 并转换成text格式 利用正则表达式匹配图片的链接直接下载

py requests 模块爬取动态网页图片

右键查看源代码 如果没有找到<img src="***.jpg">等信息 则表示网页加载图片是动态的(个人理解)

通过f12 或者 右键审查元素  
点击左上角的鼠标 然后点击图片 即可显示图片的相关代码在源码中的位置 
py requests 模块爬取动态网页图片


动态页面的话,我们可以通过抓包 ,点击 Network 然后 F5 刷新页面  查看NetWork下的XHR 


然后点击左边的js响应信息 查看Preview 中的data信息 (如果没有出现data 则转动鼠标滚轮刷新页面)


出现data 然后点击Headers 查看Query String Parameters  

py requests 模块爬取动态网页图片

py requests 模块爬取动态网页图片


发现其中的 pn: 参数 随着页面的刷新以30为增量的增加

然后用requests.get(url),其中url为Headers下的General 中的 Request URL:*****

百度图片的是 Request URL:http://image.baidu.com/search/acjson? 加上 Query String Parameters 中的参数

发现此方法获取的是缩略图,如果获取原图,需要的链接是Request headers 中的 referer中的链接)

然后我们可以通过requests来爬取图片(python3.x需要自己安装requests库)

py requests 模块爬取动态网页图片

requests.get(url,params=i) 是requests提供的params关键字,可以通过字典来补齐链接

.json()是requests库自带的json解码器,将返回的内容转换成字典

.get('data')是获取字典中key为data的值,就是我们后面下载图片余姚用到的链接

py requests 模块爬取动态网页图片


参考文章地址:http://blog.csdn.net/qq_32166627/article/details/60882964

相关文章: