今天和小伙伴们合作一个小项目,需要用到景点图片作为数据源,在百度上搜索了一些图片,感觉一个一个手动保存太过麻烦,于是想到用爬虫来下载图片。

本次代码用到了下列一些python模块,需要预先安装BeautifulSoup、requests、lxml模块。

下面直接上源代码:

import re
import requests
from urllib import error
from bs4 import BeautifulSoup
import osnum = 0
numPicture = 0
file = ''
List = []def Find(url):global Listprint('正在检测图片总数,请稍等.....')t = 0i = 1s = 0while t < 1000:Url = url + str(t)try:Result = requests.get(Url, timeout=7)except BaseException:t = t + 60continueelse:result = Result.textpic_url = re.findall('"objURL":"(.*?)",', result, re.S)  # 先利用正则表达式找到图片urls += len(pic_url)if len(pic_url) == 0:breakelse:List.append(pic_url)t = t + 60return sdef recommend(url):Re = []try:html = requests.get(url)except error.HTTPError as e:returnelse:html.encoding = 'utf-8'bsObj = BeautifulSoup(html.text, 'html.parser')div = bsObj.find('div', id='topRS')if div is not None:listA = div.findAll('a')for i in listA:if i is not None:Re.append(i.get_text())return Redef dowmloadPicture(html, keyword):global num# t =0pic_url = re.findall('"objURL":"(.*?)",', html, re.S)  # 先利用正则表达式找到图片urlprint('找到关键词:' + keyword + '的图片,即将开始下载图片...')for each in pic_url:print('正在下载第' + str(num + 1) + '张图片,图片地址:' + str(each))try:if each is not None:pic = requests.get(each, timeout=7)else:continueexcept BaseException:print('错误,当前图片无法下载')continueelse:string = file + r'\\' + keyword + '_' + str(num) + '.jpg'fp = open(string, 'wb')fp.write(pic.content)fp.close()num += 1if num >= numPicture:returnif __name__ == '__main__':  # 主函数入口word = input("请输入搜索关键词(可以是人名,地名等): ")url = 'http://image.baidu.com/search/flip?tn=baiduimage&ie=utf-8&word=' + word + '&pn='tot = Find(url)Recommend = recommend(url)  # 记录相关推荐print('经过检测%s类图片共有%d张' % (word, tot))numPicture = int(input('请输入想要下载的图片数量 '))file = input('请建立一个存储图片的文件夹,输入文件夹名称即可')y = os.path.exists(file)if y == 1:print('该文件已存在,请重新输入')file = input('请建立一个存储图片的文件夹,)输入文件夹名称即可')os.mkdir(file)else:os.mkdir(file)t = 0tmp = urlwhile t < numPicture:try:url = tmp + str(t)result = requests.get(url, timeout=10)print(url)except error.HTTPError as e:print('网络错误,请调整网络后重试')t = t + 60else:dowmloadPicture(result.text, word)t = t + 60print('当前搜索结束,感谢使用')print('猜你喜欢')for re in Recommend:print(re, end='  ')

结果展示:

转自:python爬虫实现批量下载百度图片

python爬虫实现批量下载百度图片相关推荐

  1. python爬虫实战——自动下载百度图片(文末附源码)

    用Python制作一个下载图片神器 前言 这个想法是怎么来的? 很简单,就是不想一张一张的下载图片,嫌太慢. 在很久很久以前,我比较喜欢收集各种动漫的壁纸,作为一个漫迷,自然是能收集多少就收集多少.小 ...

  2. Python实用案例,Python脚本,Python实现批量下载百度图片

    往期回顾 Python实现自动监测Github项目并打开网页 Python实现文件自动归类 Python实现帮你选择双色球号码 Python实现每日更换"必应图片"为"桌 ...

  3. python爬虫+ffmpeg批量下载ts文件,解密合并成mp4

    标题 python爬虫+ffmpeg批量下载ts文件,解密合并成mp4 文章目录 标题 前言 一.分析目标 二.寻找url规律 三.写代码 总结 前言 (第一次写博客,写的不好请见谅哈~~) 目标是大 ...

  4. urllib3批量下载百度图片

    ''' urllib3批量下载百度图片 ''' import urllib3 import re start_url = 'http://image.baidu.com/search/index?tn ...

  5. Python爬虫:爬取百度图片(selenium模拟登录,详细注释)

    1.驱动下载 百度图片这种网站是动态的,即并不是网页中的内容全部存储在源代码中,而是不停地动态刷新,所以需要使用selenium模拟浏览器登录,除了安装selenium库之外,还需要针对不同地浏览器安 ...

  6. Python爬虫实战批量下载高清美女图片,男生最爱的案例吧!

    彼岸图网站里有大量的高清图片素材和壁纸,并且可以免费下载,读者也可以根据自己需要爬取其他类型图片,方法是类似的,本文通过python爬虫批量下载网站里的高清美女图片,熟悉python写爬虫的基本方法: ...

  7. 用python批量下载网络图片大全_实战干货:用 Python 批量下载百度图片!

    为了做一个图像分类的小项目,需要制作自己的数据集.要想制作数据集,就得从网上下载大量的图片,再统一处理. 这时,一张张的保存下载,就显得很繁琐.那么,有没有一种方法可以把搜索到的图片直接下载到本地电脑 ...

  8. 用 Python 批量下载百度图片

    为了做一个图像分类的小项目,需要制作自己的数据集.要想制作数据集,就得从网上下载大量的图片,再统一处理. 这时,一张张的保存下载,就显得很繁琐.那么,有没有一种方法可以把搜索到的图片直接下载到本地电脑 ...

  9. 爬虫案例:利用python爬虫关键词批量下载高清大图

    环境: python3+pycharm+requests+re+BeatifulSoup+json 这个确实也属实有一些勉强,不少童鞋私信问我有木有 下载大图 的源码,我说可能会有,现在分享给大家. ...

最新文章

  1. 大学生如何合理使用计算机,大学生计算机合理使用引导分析
  2. 微软表示Edge的性能更优于Chrome和Firefox
  3. htmlparser解析网页内容代码
  4. 上班族英语用语:今天你加班吗?
  5. java更新无法正常安装_Java无法安装
  6. P5110-块速递推【特征方程,分块】
  7. 致我们曾经白嫖的网站
  8. SQLite For .Net 已经整合了32位和64位
  9. python 验证码图片 模拟登录_Python 模拟生成动态产生验证码图片的方法
  10. 计算机部门 消防安全隐患,市计算机:消防隐患勿轻视,安全意识常在心
  11. 在组织中管理 Windows Hello 企业版
  12. 负载均衡实现 --- LVS的介绍、调度算法、NAT模式的搭建
  13. 从零开始搭二维激光SLAM --- 基于g2o的后端优化的代码实现
  14. Servlet期末复习笔记3
  15. python端口扫描
  16. python期货自动交易_3自动交易模块_python量化交易_Python视频-51CTO学院
  17. oracle发生20001,Oracle IMP数据时报20001错误
  18. LOJ 10155. 「一本通 5.2 例 3」数字转换
  19. html怎么修改版权信息,微擎修改免费版标题、logo、页脚版权信息教程(仅供学习)...
  20. 生活小窍门小全-热爱生活,就收藏它吧!

热门文章

  1. bzoj3168 [Heoi2013]钙铁锌硒维生素(矩阵求逆+匈牙利)
  2. 用freemarker生成word文档,并插入图片
  3. 半胱氨酸蛋白酶Caspase-8 Inhibitor I, 886462-83-5
  4. Java进阶(八)Stream、异常体系
  5. m4a转换成mp3,音频格式轻松转换
  6. 49个excel常用技巧(四)
  7. 突发公共卫生事件应急指挥及决策系统解决方案
  8. 推荐两款好用的企业级内网穿透软件
  9. 【Selenium】Selenium的3种等待方式
  10. Reactive 响应式编程简单使用