参考:python 爬取动态网页(百度图片)
说明:在上面这位博主的贴子的基础上做了一些改进,解决了有些URL无法访问导致的请求超时异常抛出致使程序退出的问题。话不多说,直接上代码。

import re
import os
from urllib import parse
from urllib import request# 网页地址  正则表达式
url = ('https://image.baidu.com/search/acjson?'
'tn=resultjson_com&ipn=rj&ct=201326592&is=&fp=result&'
'queryWord={word}&cl=2&lm=-1&ie=utf-8&oe=utf-8&adpicid=&st=&z=&ic=&'
'word={word}&s=&se=&tab=&width=&height=&face=&istype=&qc=&nc=&fr=&'
'pn={pn}&rn=30&gsm=5a&1516945650575=')
pattern = '"thumbURL":"(.+?\.jpg)"'# 输入需要下载数量和关键字  返回获取所有搜索页面url
def geturls(num,word):word = parse.quote(word)urls = []pn = (num//30+1)*30for i in range(30,pn+1,30):urls.append(url.format(word = word,pn = i)) return urls# 输入需要下载数量和搜索页面urls 返回所有图片urls
def getimgs(num,urls):imgs = []reg = re.compile(pattern)for url in urls:page = request.urlopen(url)code = page.read()code = code.decode('utf-8')imgs.extend(reg.findall(code))#print(code)return imgsif __name__ == '__main__':# 搜索关键字   下载数量  存放路径word = '苹果'num = 100path = r'D:\360MoveData\Users\lenovo\Desktop\img' # 判断图片保存路径是否存在,不存在就创建if not os.path.exists(path):os.mkdir(path)print('路径不存在,但已新建')#进入百度图片搜索网页,搜索关键字,获取num整除30页图片搜索页面的地址列表urls = geturls(num,word)#百度搜索页面地址#打开urls列表中的url,用正则表达式搜索以.jpg结尾的图片源地址url,保存到imgs列表中,imgs中的url是30的倍数imgs = getimgs(num,urls)#图片地址i = 0#下载序号j = 0#请求超时数量for img in imgs:i +=1try:request.urlretrieve(img,path +'/'+ '%s.jpg' %(i-j))#将图片下载到指定目录except OSError as err:#下载超时处理print('下载第%s图片时请求超时,已跳过该图片' % (i-j))j +=1else:print('成功下载第'+str(i-j)+'张图片')if (i-j)>=num:#判断是不是下载量达到指定数量print('下载图片完毕,成功下载%d张照片,跳过%d张照片'%((i-j),j))break

程序运行截图。

打开目标文件夹,查看下载的图片。

用关键字“苹果”进行搜索,搜出了好多苹果手机的图片。。。后面用关键字“水果苹果”进行爬取,就好很多了。

python爬虫——利用百度搜索引擎爬取所需图片相关推荐

  1. 【Python爬虫】百度指数爬取+导入数据库+QuickBI展示

    百度指数爬取原文在这里:如何用Python下载百度指数的数据_小小明-代码实体的专栏-CSDN博客 00.序言 一直想把百度指数每天定时爬下来,然后放到Dashboard里展示,终于,我看到了大神给出 ...

  2. python爬虫利用Scrapy框架爬取汽车之家奔驰图片--实战

    先看一下利用scrapy框架爬取汽车之家奔驰A级的效果图 1)进入cmd命令模式下,进入想要存取爬虫代码的文件,我这里是进入e盘下的python_spider文件夹内 C:\Users\15538&g ...

  3. Python爬虫-利用xpath解析爬取58二手房详细信息

    文章目录 前言 介绍 代码 运行结果截图 前言 简单的Python练习,对页面中的某些部分的文字进行爬取 介绍 xpath解析: 最常用且最便捷高效的一种解析方式.通用型.-xpath解析原理:- 1 ...

  4. Python爬虫-从pixabay网站爬取并下载图片

    Python爬虫--Python爬虫爬取Demo图片数据 GitHub:https://github.com/kevinten10/Lifecat-Python pixabay是优秀的图片搜索网站:h ...

  5. python爬虫之正则表达式(爬取妹子网图片)

    目录 正则表达式 正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串.将匹配的子串替换或者从某个串中取出符合某个条件的子 ...

  6. python爬虫入门,一次性爬取上千张图片

    学习爬虫技术近一个月,参考崔庆才大牛的博客,钻研近两个星期,终于完成该程序,虽然写法还不够简洁,也不够规范,但对于我这个小白来说,这段学习经历是弥足珍贵的 原博客地址:https://cuiqingc ...

  7. python从网址爬图片协程_Python爬虫多任务协程爬取虎牙MM图片

    查看: 4420|回复: 241 [作品展示] Python爬虫多任务协程爬取虎牙MM图片 电梯直达 发表于 2019-4-17 21:35:47 | 只看该作者 |倒序浏览 |阅读模式 马上注册,结 ...

  8. python爬取图片教程-推荐|Python 爬虫系列教程一爬取批量百度图片

    Python 爬虫系列教程一爬取批量百度图片https://blog.csdn.net/qq_40774175/article/details/81273198# -*- coding: utf-8 ...

  9. 《python爬虫实战》:爬取贴吧上的帖子

    <python爬虫实战>:爬取贴吧上的帖子 经过前面两篇例子的练习,自己也对爬虫有了一定的经验. 由于目前还没有利用BeautifulSoup库,因此关于爬虫的难点还是正则表达式的书写. ...

最新文章

  1. 小程序中使用threejs
  2. VC6工程目录下的文件说明
  3. Python合并两个有序列表
  4. BZOJ - 4196 软件包管理器 (树链剖分+dfs序+线段树)
  5. android socket 长连接_TCP/IP,http,socket,长连接,短连接
  6. 避开10个面试大坑,接offer成功率提升至99%
  7. python解决urllib发送请求报错:urllib.error.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED].....>
  8. linux telnet 安装
  9. 我的2013年总结以及未来7年预算
  10. MITRE 发布 2020 CWE Top 25 榜单
  11. 学python lesson3
  12. 2021年茶艺师(初级)考试内容及茶艺师(初级)考试总结
  13. JavaScript数组some方法
  14. linux交互式脚本编写,谢烟客---------Linux之bash脚本编程---用户交互
  15. Short Pairing-based Non-interactive Zero-Knowledge Arguments
  16. 通过EXCEL中的FILTERXML函数实现批量翻译
  17. 重新安装的nvidia显卡驱动
  18. 数据结构与算法(Java版) | 本套系列教程的内容介绍
  19. 计算两个日期之间的工作日(去掉周末和节假日)
  20. 华硕笔记本节能证书_节能证书编号

热门文章

  1. 0516编写西游记人物类
  2. VoIP广受欢迎并悄然成长
  3. python-电信宽带提速器软件
  4. 读书笔记(八)--货币战争金权天下
  5. 或许是市面上最强的 Mock 工具
  6. android 录像及播放,Android开发(18) 摄像和播放
  7. Android——第三方Facebook授权登录获取用户信息
  8. 揭秘:《网络营销推广技术、技巧深度解密》的前世今生
  9. 你该不会还不知道吧——免费资源蓝桥杯单片机组完全版信息总结
  10. 常用Latex编辑数学公式