← 文章归档

爬取百度和搜狗搜图

搞一个机器学习的东西需要大量的带标签的图片,想了一下,还是直接用百度或者搜狗这类直接搜索得到的结果比较快。 首先看一下百度搜图,打开之后发现这是一个异步加载的页面,只有滑倒最低端的时候才会继续加载。这里先抓包看一下: 可以发现这就是向 这个objURL在html中是图片的原始…

搞一个机器学习的东西需要大量的带标签的图片,想了一下,还是直接用百度或者搜狗这类直接搜索得到的结果比较快。

首先看一下百度搜图,打开之后发现这是一个异步加载的页面,只有滑倒最低端的时候才会继续加载。这里先抓包看一下:img

可以发现这就是向http://image.baidu.com/search/acjson这个地址发了一个包,而收到的直接是一个json,通过观察可以发现![img](https://blog.pzhxbz.cn/posts/%E7%88%AC%E5%8F%96%E7%99%BE%E5%BA%A6%E5%92%8C%E6%90%9C%E7%8B%97%E6%90%9C%E5%9B%BE/faa4b37b02087bf447464fccf8d3572c11dfcf1b.jpg)

这个objURL在html中是图片的原始地址,但是在这个地方收到的却是加密过后的,本来感觉有点绝望,然而无意间在谷歌搜到了解密算法,非常高兴。

img

而这个参数也一目了然,需要改一下的就是queryWord和word,还有后面的pn和rn,经过实验,rn是收到的图片数量,为0-60,pn是开始的序号。


搜狗的话就更简单了,由于搜狗返回的url没有加密,所以用同样的方法就可以抓到。

爬图的过程中还出现了json解析错误的情况,调试后发现,返回的json中有对图片的描述,而这些描述有些是带引号的,就会变成 ",而解析的时候没有解析这个转义,所以报错。解决的方法很多,我是直接正则表达式替换了那几个可能出现问题的索引。

COMMENTS

一起聊聊

0

正在搬小板凳…

留下一条评论

友善讨论,不需要注册。评论使用无感安全检查;管理员邮箱还需要 Token 验证。

Turnstile 无感防护验证码尚未配置,评论暂不可用