这两天尝试在爬取百度图片时,遇到了不少坑,有几处问题还不太明白,先记录下来,待日后解决。
问题如下:
1. 百度图片的网页有两种:
http://image.baidu.com/search/index?tn=baiduimage&ps=1&ct=201326592&lm=-1&cl=2&nc=1&ie=utf-8&oe=utf-8&word=people&fp=result&
http://image.baidu.com/search/flip?tn=baiduimage&ps=1&ct=201326592&lm=-1&cl=2&nc=1&ie=utf-8&oe=utf-8&word=people&fp=result&
两者只有加下划线的部分不同,但是关键字为index的url图片是动态加载的,使用xpath无法解析到图片的链接地址
关键字为flip的是固定页面,每页显示固定张数的图片,但是从浏览器端看到只有30张,但是通过requests.get获取到的图片url却有60个,不是很理解这一点。
我写的爬虫使用的是解析关键字为flip的url
2. 在获取到html.text后,通过正则表达式来筛选出图片的源地址
re.findall('"objURL":"(.*?)",', html, re.S)
这一句是借鉴了其他人的写法&#x