Python爬取Baidu人脸图片

1 源码

1.1 无注释版

import requests, urllib, re 

def getData():
	i = 0
	URLs = []
	while(i < 60):
		i += 30
		print(i) 
		url = "https://image.baidu.com/search/acjson?tn=resultjson_com&ipn=rj&ct=201326592&is=&fp=result&queryWord=%E4%BA%BA%E8%84%B8&cl=2&lm=-1&ie=utf-8&oe=utf-8&adpicid=&st=-1&z=0&ic=0&hd=0&latest=0&copyright=0&word=%E4%BA%BA%E8%84%B8&s=&se=&tab=&width=&height=&face=0&istype=2&qc=&nc=1&fr=&expermode=&selected_tags=&pn={}".format(i)
		response = requests.get(url)
		response = response.text
		picURL = re.findall('"thumbURL":"(.*?)",', response, re.S)
		URLs += picURL
	return URLs

def downLoadImage(URLs):
	for i, URL in enumerate(URLs):
		print("No." + str(i + 1) + '.jpg' + 'is downloading...')
		urllib.request.urlretrieve(URL, "face/"+str(i+1)+'.jpg')
if __name__ == "__main__":
	downLoadImage(getData())

1.2 github:注释版

2 结果

测试结果


result
图2.1 获取60张人脸图片

状态提示


在这里插入图片描述

图2.2 状态提示

3 解析

打开百度网页搜索:人脸->图片,右键选择查看元素(Firefox)或检查(chrome).
按图3.1选择,以Firefox为例.


URL

图3.1 指导步骤

4 总结

  • 倒序分析,先从URL解析开始,解析图片的数据所在的真实URL;
  • 批量获取图片,需要进一步处理URL,正则化获取,批量存储URL;
  • 最重要是找到分页参数;
  • 注意:XHR中无数据时,滑动网页,即有数据;

[参考文献]
[1]https://blog.csdn.net/xiligey1/article/details/73321152


  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天然玩家

坚持才能做到极致

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值