转载自:https://www.cnblogs.com/sjfeng1987/p/9902077.html

Code

#!usr/bin/env python
# coding=utf-8import requests
import re
import os
import urllib.parse# 获取动态页面返回的文本
def get_page_html(page_url):headers = {'Referer': 'https://image.baidu.com/search/index?tn=baiduimage','User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36'}try:r = requests.get(page_url, headers=headers)if r.status_code == 200:r.encoding = r.apparent_encodingreturn r.textelse:print('请求失败')except Exception as e:print(e)# 从文本中提取出真实图片地址
def parse_result(text):url_real = re.findall('"thumbURL":"(.*?)",', text)return url_real# 获取图片的content
def get_image_content(url_real):headers = {'Referer': url_real,'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36'}try:r = requests.get(url_real, headers=headers)if r.status_code == 200:r.encoding = r.apparent_encodingreturn r.contentelse:print('请求失败')except Exception as e:print(e)# 将图片的content写入文件
def save_pic(url_real, content):root = 'D://baiduimage//'path = root + url_real.split('/')[-1]if not os.path.exists(root):os.mkdir(root)if not os.path.exists(path):with open(path, 'wb') as f:f.write(content)print('图片{}保存成功,地址在{}'.format(url_real, path))else:pass# 主函数
def main():keyword = input('请输入你要查询的关键字: ')keyword_quote = urllib.parse.quote(keyword)depth = int(input("请输入要爬取的页数(每页30张图): "))for i in range(depth):url = 'https://image.baidu.com/search/acjson?tn=resultjson_com&ipn=rj&ct=201326592&is=&fp=result&queryWord+=&cl=2&lm=-1&ie=utf-8&oe=utf-8&adpicid=&st=-1&word={}&z=&ic=0&s=&se=&tab=&width=&height=&face=0&istype=2&qc=&nc=1&fr=&step_word={}&pn={}&rn=30&gsm=1e&1541136876386='.format(keyword_quote, keyword_quote, i * 30)html = get_page_html(url)real_urls = parse_result(html)for real_url in real_urls:content = get_image_content(real_url)save_pic(real_url, content)# 函数入口
if __name__ == '__main__':main()

【爬图】——从百度图片按关键字自动下载图片相关推荐

  1. python自动下载安装软件_30行Python代码从百度自动下载图片(内附源码和exe程序)...

    只需要30行代码就可以从百度自动下载图片 大家好,我是行哥,一个专门教小学生撸Python的编程老师(小学生都能学会的编程) 这里行哥想问大家三个问题 : - 你还在为批量下载表情包发愁吗? - 你还 ...

  2. Python爬虫之自动下载图片

    对大佬的图片下载器的小程序很感兴趣,故运行了一下代码块,发现会报类似下图中的Exceeded 30 redirects错. 故重新编写了一个访问函数来实现图片下载功能,不过还是要感谢大佬很有趣的ide ...

  3. mac用python爬虫下载图片_使用Python爬虫实现自动下载图片

    python爬虫支持模块多.代码简洁.开发效率高 ,是我们进行网络爬虫可以选取的好工具.对于一个个的爬取下载,势必会消耗我们大量的时间,使用Python爬虫就可以解决这个问题,即可以实现自动下载.本文 ...

  4. Paste Image插件初始化设置:修改图片保存路径、自动插入图片描述信息

    Paste Image插件初始化设置:修改图片保存路径.自动插入图片描述信息 Paste Image插件默认将图片保存于所编辑的Markdown文档的当前目录下,若插入的图片较多,会导致该目录下显得杂 ...

  5. java 多线程下载图片_java多线程实现下载图片并压缩

    最近在做一个需求:从其他系统的ftp目录下载存储图片url的文件,然后读取文件中的url地址,根据地址下载图片后按天压缩成一个包,平均一个地址文件中包含4000个地址左右,也就是说一个文件扫描后需要下 ...

  6. php导出照片,TP5导出excel图片和数据--先下载图片到本地服务器

    ## :-: TP5导出excel图片和数据--先下载图片到本地服务器 ~~~ public function Export( ) { set_time_limit(0); ini_set('memo ...

  7. 批量下载图片的插件-免费自动下载图片的插件

    为什么需要批量下载图片的插件?现实生活中基本上每个人都会和图片照片打交道,当看到自己喜欢的图片都喜欢保存下来.而大多用户只知道通过鼠标右键的 "图片另存为" 将图片下载到本地.图片 ...

  8. Python爬虫框架 scrapy 入门经典project 爬取校花网资源、批量下载图片

    ####1.安装scrapy 建议:最好在新的虚拟环境里面安装scrapy 注意:博主是在 Ubuntu18.04 + Python3.6 环境下进行开发的,如果遇到安装scrapy不成功请自行百度/ ...

  9. python 百度贴吧爬虫(下载图片)

    业余时用python写的百度贴吧爬虫程序,算是对学习python程序得一个练习. 本程序可以针对给定的贴吧链接,把帖子楼主的发言或者图片爬取出来,目前主要功能为下载所有楼主发的图片.爬取楼主发言的功能 ...

最新文章

  1. 面试必备的C++知识(未完待续)
  2. Laravel之路——file缓存修改为redis缓存
  3. 【Leetcode】79.单词搜索
  4. Eigen求解数学问题(一)
  5. 硬核!从0到1学习Spring Cloud微服务章节《建议收藏》
  6. A股开盘:深证区块链50指数涨0.94%,*ST晨鑫涨停
  7. yyds!Java 性能优化的 50 个细节(珍藏版)
  8. Linux系统性能监控工具nmon
  9. Windows远程连接Linux虚拟机图形界面
  10. (离散)令R={m|m=a+b√2,a,b∈Q,+为普通加法},定义映射g:R→  R 为g(a+b√2)= a-b√2,试证:g是/R,+/到/R,+/的自同构映射
  11. 世界上服务器最多的游戏,魔兽科普 国服人最多的几个服务器都什么来头
  12. 如何有效地对时间进行管理
  13. Sketch占满MacBook200G硬盘的解决方法
  14. 华为路由器接口如何区分_华为路由的线路输出的两种不同方法简介
  15. 解析解与数值解的区别
  16. 神经网络原理的简单介绍,神经网络几何原理图
  17. 大数据信息资料采集:房产链家二手房新房源出售买卖交易信息采集
  18. 家族查询系统c语言源程序,家谱管理系统(含源代码).docx
  19. RC522写块0复制S50卡
  20. 爱客猴(echo)内容管理系统 v3.0

热门文章

  1. k8s 更改NodePort默认端口范围
  2. JAVA语言时间BJT转UCT
  3. ML之FE:Vintage曲线/Vintage分析(观察用户的全周期风险情况/明确用户风险的成熟期/确定逾期率何时趋向于稳定/从而选择合适的表现期)的简介、计算逻辑、案例应用之详细攻略
  4. T460/s 安装Sierra 10.12.2 成功分享……
  5. OPPOR9km_官方线刷包_救砖包_解账户锁
  6. 网络--- Nagle算法理解
  7. android系统触摸屏虚拟按键
  8. 【Axure视频教程】中继器表格——添加行内容
  9. android安装多个微信支付,android微信支付详解与坑
  10. 华为消费者云背后的微服务实践经验