在进行图像处理时需要大量的图片进行分析,这时爬虫的作用就显得比较重要了,通过爬虫可以爬取大量的图片进行图像处理以及模型训练,下面就分享一种可以在百度图片上爬取大量图片的方法。
环境:python3.7+jupyter notbook
其他python3.7环境也行(比如pycharm)
1、使用正则表达式爬取百度图片
首先打开百度图片,会看到这个界面
然后鼠标右击查看网页源代码,一直往下滑,可以看到这个界面
从这里可以看到图片的网址在objURL里面,当然hoverURL等里面也有图片信息,不过objURL里面的图片清晰度比较高,所以这里一般用正则表达式爬取objURL里面的内容
代码附上:
#-*- coding:utf-8 -*-
import re
import requests
#url内输入你要下载的图片地址
url = 'https://image.baidu.com/search/index?tn=baiduimage&ct=201326592&lm=-1&cl=2&ie=gb18030&word=%BA%A3%CC%C4%BB%A8%B8%DF%C7%E5%CD%BC%C6%AC&fr=ala&ala=1&alatpl=adress&pos=0&hs=2&xthttps=000000'
headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36'}
html = requests.get(url=url,headers=headers).text
pic_url = re.findall('"objURL":"(.*?)",',html,re.S)
i=0
for each in pic_url:
print (each)
可以看到输出结果,是很多图片的网址
下面用get请求将这些图片保存在本地文件(这里保存在默认路径)
for each in pic_url:
print (each)
try:
pic= requests.get(each, timeout=10)
except requests.excepti