1. # coding=utf-8
  2. """根据搜索词下载百度图片"""
  3. import re
  4. import urllib
  5.  
  6. import os
  7.  
  8. def get_onepage_urls(onepageurl):
  9. """获取单个翻页的所有图片的urls+当前翻页的下一翻页的url"""
  10. try:
  11. page = urllib.urlopen(onepageurl) # urllib.urlopen()方法用于打开一个URL地址
  12. html = page.read() # read()方法用于读取URL上的数据
  13. except Exception as e:
  14. pic_urls = []
  15. fanye_url = ''
  16. return pic_urls, fanye_url
  17. pic_urls = re.findall('"objURL":"(.*?)",', html, re.S)
  18. fanye_urls = re.findall(re.compile(r'<a href="(.*)" class="n">下一页</a>'), html, flags=0)
  19. fanye_url = 'http://image.baidu.com' + fanye_urls[0] if fanye_urls else ''
  20. return pic_urls, fanye_url
  21.  
  22. Dir = os.path.join('E://', 'pic')
  23.  
  24. def down_pic(pic_urls):
  25. if not os.path.exists(Dir):
  26. os.makedirs(Dir)
  27. """给出图片链接列表, 下载所有图片"""
  28. for i, pic_url in enumerate(pic_urls):
  29. try:
  30. urllib.urlretrieve(pic_url, os.path.join(Dir, '%s.jpg') % str(i + 1))
  31. print('成功下载第%s张图片: %s' % (str(i + 1), str(pic_url)))
  32. except Exception as e:
  33. print('下载第%s张图片时失败: %s' % (str(i + 1), str(pic_url)))
  34. print(e)
  35. continue
  36.  
  37. if __name__ == '__main__':
  38. keyword = '狗狗' # 关键词, 改为你想输入的词即可, 相当于在百度图片里搜索一样
  39. url_init_first = r'http://image.baidu.com/search/flip?tn=baiduimage&ipn=r&ct=201326592&cl=2&lm=-1&st=-1&fm=result&fr=&sf=1&fmq=1497491098685_R&pv=&ic=0&nc=1&z=&se=1&showtab=0&fb=0&width=&height=&face=0&istype=2&ie=utf-8&ctd=1497491098685%5E00_1519X735&word='
  40. url_init = url_init_first + urllib.quote(keyword, safe='/')
  41. all_pic_urls = []
  42. onepage_urls, fanye_url = get_onepage_urls(url_init)
  43. all_pic_urls.extend(onepage_urls)
  44. fanye_count = 0 # 累计翻页数
  45. while 1:
  46. onepage_urls, fanye_url = get_onepage_urls(fanye_url)
  47. fanye_count += 1
  48. print('第%s页' % fanye_count)
  49. all_pic_urls.extend(onepage_urls)
  50. if fanye_url == '' and onepage_urls == []:
  51. print('已到最后一页, 开始下载图片:')
  52. break
  53. down_pic(all_pic_urls)
  54. print '图片下载完毕'

python根据搜索词下载百度图片的更多相关文章

  1. Python 爬取陈都灵百度图片

    Python 爬取陈都灵百度图片 标签(空格分隔): 随笔 今天意外发现了自己以前写的一篇爬虫脚本,爬取的是我的女神陈都灵,尝试运行了一下发现居然还能用.故把脚本贴出来分享一下. import req ...

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

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

  3. java实现批量下载百度图片搜索到的图片

    就是写的个小程序,用于记录一下,方便后续查看,首先感谢下面这个博客,从这篇文章衍生的吧,大家可以学习下: http://www.cnblogs.com/lichenwei/p/4610298.html ...

  4. 百度图片爬虫-python版-如何爬取百度图片?

    上一篇我写了如何爬取百度网盘的爬虫,在这里还是重温一下,把链接附上: http://www.cnblogs.com/huangxie/p/5473273.html 这一篇我想写写如何爬取百度图片的爬虫 ...

  5. python爬虫之爬取百度图片

    ##author:wuhao##爬取指定页码的图片,如果需要爬取某一类的所有图片,整体框架不变,但需要另作分析#import urllib.requestimport urllib.parseimpo ...

  6. python实现使用词云展示图片

    记录瞬间 首先,要安装一些第三方包 pip install scipyCollecting scipy Downloading https://files.pythonhosted.org/packa ...

  7. Python随笔--爬虫(下载妹子图片)

  8. java-selenium下载百度图片

    package download; import java.io.DataInputStream; import java.io.File; import java.io.FileOutputStre ...

  9. Python代码搜索并下载酷狗音乐

    运行环境: Python3.5+Pycharm 实例代码: import requests,re keyword = input("请输入想要听的歌曲:") url = " ...

随机推荐

  1. let 、const 、var、function声明关键字的新理解

    今天在群里看到大佬们讨论let .const 的提升问题,有个大佬问  三种声明都在什么阶段提升?  什么阶段?这个真不清楚,以前是只知道let.const存在死区,没有变量提升,一下子就懵了 后经手 ...

  2. (二十九)c#Winform自定义控件-文本框(二)

    前提 入行已经7,8年了,一直想做一套漂亮点的自定义控件,于是就有了本系列文章. 开源地址:https://gitee.com/kwwwvagaa/net_winform_custom_control ...

  3. 【hdu 2544最短路】【Dijkstra算法模板题】

    Dijkstra算法 分析 Dijkstra算法适用于边权为正的情况.它可用于计算正权图上的单源最短路( Single-Source Shortest Paths, SSSP) , 即从单个源点出发, ...

  4. 快速了解Python并发编程的工程实现(上)

    关于我 一个有思想的程序猿,终身学习实践者,目前在一个创业团队任team lead,技术栈涉及Android.Python.Java和Go,这个也是我们团队的主要技术栈. Github:https:/ ...

  5. 从零写一个编译器(十三):代码生成之遍历AST

    项目的完整代码在 C2j-Compiler 前言 在上一篇完成对JVM指令的生成,下面就可以真正进入代码生成部分了.通常现代编译器都是先把生成IR,再经过代码优化等等,最后才编译成目标平台代码.但是时 ...

  6. .net core redis的全套操作

    Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合). Redis支持主从同步.数据可以从主服务器向任意数 ...

  7. C语言编程入门之--第五章C语言基本运算和表达式-part4

    5.3.5 和二进制极为密切的运算符 本小节的运算符需要借助二进制概念来理解. 二进制数据中,比如一个字节的数据,它的十进制为228,二进制就为11100100,如图5.11, 注意:如果不懂怎么转换 ...

  8. 你是否真的了解全局解析锁(GIL)

    关于我 一个有思想的程序猿,终身学习实践者,目前在一个创业团队任team lead,技术栈涉及Android.Python.Java和Go,这个也是我们团队的主要技术栈. Github:https:/ ...

  9. 逆向破解之160个CrackMe —— 016

    CrackMe —— 016 160 CrackMe 是比较适合新手学习逆向破解的CrackMe的一个集合一共160个待逆向破解的程序 CrackMe:它们都是一些公开给别人尝试破解的小程序,制作 c ...

  10. 马蜂窝视频编辑框架设计及在 iOS 端的业务实践

    (马蜂窝技术公众号原创内容,ID: mfwtech) 熟悉马蜂窝的朋友一定知道,点击马蜂窝 App 首页的发布按钮,会发现发布的内容已经被简化成「图文」或者「视频」. 长期以来,游记.问答.攻略等图文 ...