写个爬虫,抓点百度图片。本程序基于python3编写,可根据关键词抓取百度图片

下载的图片:

代码:

import json
import os
import random
import time
import re
import easygui
from urllib import request, parse# 图片保存路径
PATH = '图片/百度/'
os.makedirs(PATH, exist_ok=True)# 获取每页数据
def get_page_data(keyword, page=1, charset='utf-8'):pn = page * 30  # 每页图片数gsm = hex(pn)  # 每页图片数16进制表示keyword = parse.quote(keyword)  # 关键词url转码url = 'http://image.baidu.com/search/acjson?tn=resultjson_com&ipn=rj&ct=201326592&is=&fp=result&queryWord=' + keyword + '&cl=2&lm=-1&ie=utf-8&oe=utf-8&adpicid=&st=&z=&ic=&word=' + keyword + '&s=&se=&tab=&width=&height=&face=&istype=&qc=&nc=&fr=&pn=' + str(pn) + '&rn=30&gsm=' + str(gsm)req = request.Request(url)req.add_header('User-Agent', 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36')return request.urlopen(req).read().decode(charset)# 搜索图片
def search(keyword, pages=1):for page in range(1, pages + 1):page_data = ''try:page_data = get_page_data(keyword, page)except Exception as e:print(e)if not page_data:continueobj = json.loads(page_data)  # 将数据转换为json对象images = obj['data']  # 获取图片列表for image in images:if image:src = image['thumbURL']  # 图片地址suffix = src[src.rfind('.'):]  # 图片后缀title = re.sub('\W+', '', image['fromPageTitleEnc']) # 图片标题image_path = PATH + title + str(int(time.time())) + str(random.randint(10000, 99999)) + suffix  # 文件名req = request.Request(src)req.add_header('User-Agent', 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36')req.add_header('Referer', 'http://image.baidu.com/i?tn=baiduimage&ps=1&ct=201326592&lm=-1&cl=2&nc=1&word=%E4%BA%A4%E9%80%9A&ie=utf-8')try:image_data = request.urlopen(req).read()f = open(image_path, 'wb')f.write(image_data)f.close()print(src + ' 下载完成')except Exception as e:print(e)__keyword, __pages = easygui.multenterbox('请输入搜索信息', '图片下载器', ['关键词', '下载页数'])
search(__keyword, int(__pages))

注:图形框需要安装easygui

顺便用pyinstaller编译个exe程序,源码及exe压缩包下载地址:http://download.csdn.net/detail/u013314786/9721220

python 图片抓取相关推荐

  1. Python图片抓取实操

    爬取效果如下(别问我为什么被分成了两张还有去不掉的水印,不然网站怎么赚钱): 爬取链接为(千图网的图片,顺便吐槽一下,这个有些图片是分两半的!!!): https://www.58pic.com/pi ...

  2. python学习-抓取知乎图片

    python学习-抓取知乎图片 #!/bin/usr/env python3__author__ = 'nxz'""" 抓取知乎图片 webdriver Chromedr ...

  3. Python爬虫之gif图片抓取

    Python爬虫之gif图片抓取 标签:图片爬虫 这几天,对于怎么去爬取图片很感兴趣,就研究了一下,图片爬虫可以说是有简单,更有复杂的,今天,我做了一个比较简单的gif的图片爬虫,仅仅学习一下怎么进行 ...

  4. python爬虫抓取百度图片_Python爬虫抓取百度的高清摄影图片

    成果预览: 源代码: import requests import re url = 'https://image.baidu.com/search/index' headers = { 'User- ...

  5. python爬虫招聘-Python爬虫抓取智联招聘(基础版)

    原标题:Python爬虫抓取智联招聘(基础版) 作者:C与Python实战 「若你有原创文章想与大家分享,欢迎投稿.」 对于每个上班族来说,总要经历几次换工作,如何在网上挑到心仪的工作?如何提前为心仪 ...

  6. Python_百度图片以及百度贴吧图片抓取

    一.百度图片抓取 百度图片抓取存在两个难点: (1)没有翻页功能,只有下拉不断get新的img,这个暂时没有解决,据说可以通过selenium模块来模拟浏览器动作进行,暂未入手,只能抓取最开始get到 ...

  7. 编写Python爬虫抓取豆瓣电影TOP100及用户头像的方法

    这篇文章主要介绍了编写Python爬虫抓取豆瓣电影TOP100及用户头像的方法,用到了Python的urllib和urllib2模块,需要的朋友可以参考下 抓取豆瓣电影TOP100 一.分析豆瓣top ...

  8. Python爬虫抓取东方财富网股票数据并实现MySQL数据库存储

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 python免费学习资 ...

  9. python爬虫-抓取acg12动漫壁纸排行设置为桌面壁纸

    ACG-wallpaper 初学python,之前想抓取P站的一些图片来着,然后发现acg12这里有专门的壁纸榜单,就写了个抓取壁纸作为mac桌面壁纸玩玩. 功能:抓取acg12壁纸榜单的动漫壁纸,并 ...

最新文章

  1. 内存泄漏检测工具VLD在VS2010中的使用举例
  2. 使用Intellj Idea打开选中文件/文件夹
  3. 动作识别最新高效利器 ACTION-Net:通用的多路径激活模块 | CVPR 2021
  4. python导入py文件-关于python:如何从另一个目录导入.py文件?
  5. 永远不会执行的cron表达式
  6. python传递参数给sql_python-如何在SQLAlchemy Core中将列名作为参数传递?
  7. C# lambda表达式与匿名方法
  8. 【渝粤教育】国家开放大学2018年秋季 1087t数学分析专题研究 参考试题
  9. Loadrunner脚本优化-参数化之关联MySQL数据库获取数据
  10. 如何为报表服务器设置SQL Server数据库复制
  11. 时序分析基本概念介绍——STA概述
  12. 红外反射传感器实验-传感器原理及应用实验
  13. Win10点击声音图标打不开音量调节的解决方法
  14. 【NOI Online】 2021普及
  15. 获取所有权_住房所有权经济学深入研究
  16. MapReducer的map和reducer的几种写法模板以及自定义数据类型
  17. 西南交大计算机应用基础离线作业答案,西南交大计算机应用基础1-5作业答案.doc...
  18. 23种常见设计模式详解
  19. 如何平衡新老策略的好与坏,一道常见风控送命题解答
  20. Shell 掐头去尾法

热门文章

  1. UEFI怎么用 UEFI安全启动设置添加方法步骤图解
  2. [转贴] 这是我和一个偷吃禁果的女孩子的故事
  3. iOS 图片裁剪(用户头像裁剪)
  4. 实验:树莓派通过网线连接笔记本实现网络共享
  5. 【笔记】excel预加载word引用
  6. 车辆调度 数学建模c语言,2019数学建模国赛C题–机场的出租车调度问题
  7. 云计算平台项目团队组织架构与缘起
  8. Android创建圆形或圆角按钮Button 真菜鸟食用
  9. chrome安装js插件
  10. [附源码]Java计算机毕业设计SSM房屋租赁系统