初学python,写个小爬虫去爬取百度图片的图片
如果是静态加载图片的话 直接requests.get(url)获取源码 并转换成text格式 利用正则表达式匹配图片的链接直接下载
右键查看源代码 如果没有找到<img src="***.jpg">等信息 则表示网页加载图片是动态的(个人理解)
通过f12 或者 右键审查元素
点击左上角的鼠标 然后点击图片 即可显示图片的相关代码在源码中的位置
动态页面的话,我们可以通过抓包 ,点击 Network 然后 F5 刷新页面 查看NetWork下的XHR
然后点击左边的js响应信息 查看Preview 中的data信息 (如果没有出现data 则转动鼠标滚轮刷新页面)
出现data 然后点击Headers 查看Query String Parameters
发现其中的 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库)
requests.get(url,params=i) 是requests提供的params关键字,可以通过字典来补齐链接
.json()是requests库自带的json解码器,将返回的内容转换成字典
.get('data')是获取字典中key为data的值,就是我们后面下载图片余姚用到的链接
参考文章地址:http://blog.csdn.net/qq_32166627/article/details/60882964