python百度图片网页解析,批量爬取(仅供学习)

百度图片爬取python

1.解析网页

  1. 打开浏览,百度搜索,上图在这里插入图片描述
  2. 打开浏览器里面的调试窗口按F12即可在这里插入图片描述
  3. 然后找出图片的url,点击这个,可以快速定位页面源代码,这里我直接抓取里面的json格式里面所对应的图片url
    在这里插入图片描述
  4. 分析返回的数据,看图抓包,我们只需要复制里面的Request URL作为url在这里插入图片描述 5. 可以点击箭头所指数据,类似的都是返回图片的相关信息,包括url,如图在这里插入图片描述

2.爬取代码

import requests#导入请求库
import time
import re
url='https://image.baidu.com/search/acjson?tn=resultjson_com&logid=12009735572442623815&ipn=rj&ct=201326592&is=&fp=result&fr=&word=%E5%94%90%E5%AB%A3&cg=star&queryWord=%E5%94%90%E5%AB%A3&cl=2&lm=-1&ie=utf-8&oe=utf-8&adpicid=&st=-1&z=&ic=0&hd=&latest=&copyright=&s=&se=&tab=&width=&height=&face=0&istype=2&qc=&nc=1&expermode=&nojc=&isAsync=&pn=30&rn=30&gsm=1e&1678976552414='
#添加请求头,模拟浏览器,有些网站可以不加这个,不过最好是加上,油多不坏菜这个道理
headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.63 Safari/537.36'}
res=requests.get(url,headers=headers)#发送请求,返回数据
html=res.text#把返回的内容解析
# 使用正则表达式匹配图片url
img_url_list=re.findall('"thumbURL":"(.*?)"',html)
#print(img_url_list)
for i in range(len(img_url_list)):
    res_img=requests.get(img_url_list[i],headers=headers)
    img=res_img.content#这个里是图片,我们需要返回二进制数据
    # 把图片保存起来
    with open(str(i)+'tangyan_img.jpg','wb')as f:
        f.write(img)
    time.sleep(3)#每当保存一张图片,先暂停一下,不然太频繁容易发现是机器爬虫,导致无法获取

print("爬取{}张图片成功".format(i))

看结果:
在这里插入图片描述

总结

上面爬取百度图片保存到本地,使用python语言,其中涉及到的三方库有requests、re(需要自己下载),解析页面后利用正则表达式来匹配图片的url,接着使用open()函数保存图片,如果友友们,运行代码出错,欢迎互相交流,或者提供更好的方法,可以相互交流。
以上仅供学习参考

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值