bing图片批量下载(Python爬虫图片批量下载实例)

摘要:以bing上图片下载为例,提供使用Python爬虫批量下载图片方法,亲测有效。代码中有详尽注释。

#导入需要使用到的包
import requests #获取html的包
from bs4 import BeautifulSoup #整理html的包
import os #操作操作系统的包

#获取下周图片的url
r = requests.get('https://bing.ioliu.cn/', headers = {'user-agent': 'Mozilla/5.0'}) #获取对应url的html,因有发爬虫识别,所以使用Mozilla浏览器代理访问
soup = BeautifulSoup(r.text, 'html.parser') #将html整理
find = soup.find_all('a', class_ = 'mark') #从html发现图片url皆为标签下,属性为'mark',获取所有,结果为列表

#从之前的find列表中提取图片的url保存至urlListRaw列表中
urlListRaw = []
for url in find:
    urlListRaw.append(url.attrs['href'])
urlListRaw

#发现下载图片的url与urlListRaw提取到的url略有不同,将urlListRaw转化为能下载的url保存至urlList列表中
urlList = []
for url in urlListRaw:
    urlList.append(url[:-6] + 'download')
urlList

#按之前获得的urlList中每个url下载图片
root = './pics/' #设置图片保存文件夹
for url in urlList: #对每个url循环
    url = 'https://bing.ioliu.cn' + url  + '.jpg'#修改下载链接
    path = root + url.split('/')[-1][:-15] #定义文件保存地址及名称
    try:
        if not os.path.exists(root): #如果文件夹不存在
            os.mkdir(root) #则新建文件夹
        if not os.path.exists(path): #如果文件未下载过
            r = requests.get(url, headers = {'user-agent': 'Mozilla/5.0'}) #获取图片html,仍需使用Mozilla代理
            with open(path, 'wb') as f: #打开图片,w:写,b:二进制
                f.write(r.content) #r.content r的二进制写入
                f.close() #关闭文件
                print('文件保存成功')
        else:
            print('文件已存在')
    except:
        print('爬取失败')

你可能感兴趣的:(bing图片批量下载(Python爬虫图片批量下载实例))