百度图片爬虫(1)前期分析

前期分析

该文章系列记录了我编写百度图片爬虫的过程在这里插入图片描述
搜索关键字’human eye’出现如下结果,右键其中一个图片选择检查,使用该方式打开谷歌开发者工具可快速定位到元素的dom位置。
在这里插入图片描述
我们发现所有的图片都处于’imgpage‘容器下的一个ul列表中,复制当前地址栏url到python程序中,使用requests库进行抓包测试,并使用BeautifulSoup将获取到的网页内容打印在控制台。
在这里插入图片描述然后在控制台搜索‘imgpage’标签,并无搜索结果,对‘imgpage’的父级容器‘imgid’搜索发现该标签存在但内容为空。
至此,我进行猜测,大致有两种情况
1.该url只负责加载网页主体框架,而实际的图片内容应该是使用其他的js方法调用异步数据接口进行获取的。
2.因为只是为了初步测试,我使用的请求为url之外不包含任何参数的最基本请求,百度的的数据接口需要其他基本参数或者cookie进行校验。
所以我回到了浏览器中,再次打开开发者工具,打开Network对应的tab页进行抓包。
在这里插入图片描述
可以看到第一个请求即为我们浏览器地址栏Url对应的请求,其他的请求包含了很多css,js静态资源和网页图标等,繁杂的请求中,根据上面的分析找到我们需要的请求,需要对请求进行过滤,点击XHR选项,显示如下。
在这里插入图片描述
有三个请求,打开第一个请求,发现返回的是一个json数据,只包含了一些诸如用户名登录id等字段,应该是一个和登录状态有关的请求,不是我们要的。
打开第二个请求,发现是整齐规则的批量数据,很有可能就是我们需要的请求。
在这里插入图片描述
将该请求的url复制到浏览器地址栏,请求结果如下。
在这里插入图片描述
每条数据包含的url有好几个,第一个’thumbURL’字段的url为图片格式结尾,复制到浏览器地址栏发现正是我们需要的图片。
在这里插入图片描述
重新回到搜索结果的抓包页面,将页面向下滚动(百度图片搜索结果向下滚动时 会加载更多新图片),发现acjson请求的数量也在变多,至此,我们可以确定已经找到了我们需要的url请求。
接下来是对该url进行分析,按顺序复制了几个名为‘acjson’的请求,粘贴到文本编辑器中。


http://image.baidu.com/search/acjson?tn=resultjson_com&ipn=rj&ct=201326592&is=&fp=result&queryWord=human+eye&cl=2&lm=-1&ie=utf-8&oe=utf-8&adpicid=&st=-1&z=&ic=0&hd=&latest=&copyright=&word=human+eye&s=&se=&tab=&width=&height=&face=0&istype=2&qc=&nc=1&fr=&expermode=&force=&pn=30&rn=30&gsm=&1579353442014=

http://image.baidu.com/search/acjson?tn=resultjson_com&ipn=rj&ct=201326592&is=&fp=result&queryWord=human+eye&cl=2&lm=-1&ie=utf-8&oe=utf-8&adpicid=&st=-1&z=&ic=0&hd=&latest=&copyright=&word=human+eye&s=&se=&tab=&width=&height=&face=0&istype=2&qc=&nc=1&fr=&expermode=&force=&pn=60&rn=30&gsm=&1579353447207=


http://image.baidu.com/search/acjson?tn=resultjson_com&ipn=rj&ct=201326592&is=&fp=result&queryWord=human+eye&cl=2&lm=-1&ie=utf-8&oe=utf-8&adpicid=&st=-1&z=&ic=0&hd=&latest=&copyright=&word=human+eye&s=&se=&tab=&width=&height=&face=0&istype=2&qc=&nc=1&fr=&expermode=&force=&pn=90&rn=30&gsm=&1579353460541=


http://image.baidu.com/search/acjson?tn=resultjson_com&ipn=rj&ct=201326592&is=&fp=result&queryWord=human+eye&cl=2&lm=-1&ie=utf-8&oe=utf-8&adpicid=&st=-1&z=&ic=0&hd=&latest=&copyright=&word=human+eye&s=&se=&tab=&width=&height=&face=0&istype=2&qc=&nc=1&fr=&expermode=&force=&pn=120&rn=30&gsm=&1579353463141=

通过对比所有的参数,可以得出有区分度的参数:
1.word:分词算法对输入关键字进行分词并检索
2.pn:分页查询字段 每30一页 从30开始
3.最后的数字字段经测试可去除(可能是百度的伪加密反爬字段或者其他和图片获取无关的参数)
将url代入python程序中进行低频率的简单请求测试,在该情况下暂未发现反爬措施,至此,对于百度图片爬虫的前期分析工作已经完成,接下来我将开始爬虫程序的正式编写。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值