python实现爬取百度图片的方法示例


Posted in Python onJuly 06, 2019

本文实例讲述了python实现爬取百度图片的方法。分享给大家供大家参考,具体如下:

import json
import itertools
import urllib
import requests
import os
import re
import sys
word=input("请输入关键字:")
path="./ok"
if not os.path.exists(path):
  os.mkdir(path)
word=urllib.parse.quote(word)
url = r"http://image.baidu.com/search/acjson?tn=resultjson_com&ipn=rj&ct=201326592&fp=result&queryWord={word}&cl=2&lm=-1&ie=utf-8&oe=utf-8&st=-1&ic=0&word={word}&face=0&istype=2nc=1&pn={pn}&rn=60"
urls=(url.format(word=word,pn=x)for x in itertools.count(start=0,step=60))
index=0
str_table = {
  '_z2C$q': ':',
  '_z&e3B': '.',
  'AzdH3F': '/'
}
char_table = {
  'w': 'a',
  'k': 'b',
  'v': 'c',
  '1': 'd',
  'j': 'e',
  'u': 'f',
  '2': 'g',
  'i': 'h',
  't': 'i',
  '3': 'j',
  'h': 'k',
  's': 'l',
  '4': 'm',
  'g': 'n',
  '5': 'o',
  'r': 'p',
  'q': 'q',
  '6': 'r',
  'f': 's',
  'p': 't',
  '7': 'u',
  'e': 'v',
  'o': 'w',
  '8': '1',
  'd': '2',
  'n': '3',
  '9': '4',
  'c': '5',
  'm': '6',
  '0': '7',
  'b': '8',
  'l': '9',
  'a': '0'
}
i=1
char_table = {ord(key): ord(value) for key, value in char_table.items()}
for url in urls:
  html=requests.get(url,timeout=10).text
  a=re.compile(r'"objURL":"(.*?)"')
  downURL=re.findall(a,html)
  for t in downURL:
    for key, value in str_table.items():
        t = t.replace(key, value)
    t=t.translate(char_table)
    try:
      html_1=requests.get(t)
      if str(html_1.status_code)[0]=="4":
        print('失败1')
        continue
    except Exception as e:
      print('失败2')
      continue
    with open(path+"/"+str(i)+".jpg",'wb') as f:
      f.write(html_1.content)
    i=i+1

更多关于Python相关内容可查看本站专题:《Python Socket编程技巧总结》、《Python正则表达式用法总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python的print用法示例
Feb 11 Python
python使用opencv读取图片的实例
Aug 17 Python
python绘制条形图方法代码详解
Dec 19 Python
python生成tensorflow输入输出的图像格式的方法
Feb 12 Python
Python基于OpenCV库Adaboost实现人脸识别功能详解
Aug 25 Python
Python3删除排序数组中重复项的方法分析
Jan 31 Python
python+pyqt5实现图片批量缩放工具
Mar 18 Python
python使用itchat模块给心爱的人每天发天气预报
Nov 25 Python
浅谈keras中的keras.utils.to_categorical用法
Jul 02 Python
Python JSON常用编解码方法代码实例
Sep 05 Python
python实现简单贪吃蛇游戏
Sep 29 Python
Python中异常处理用法
Nov 27 Python
python实现控制电脑鼠标和键盘,登录QQ的方法示例
Jul 06 #Python
python3 打印输出字典中特定的某个key的方法示例
Jul 06 #Python
python使用 zip 同时迭代多个序列示例
Jul 06 #Python
Python搭建Spark分布式集群环境
Jul 05 #Python
详解python解压压缩包的五种方法
Jul 05 #Python
用python3 返回鼠标位置的实现方法(带界面)
Jul 05 #Python
python中的colorlog库使用详解
Jul 05 #Python
You might like
深入解析PHP垃圾回收机制对内存泄露的处理
2013/06/14 PHP
thinkphp3.x自定义Action、Model及View的简单实现方法
2016/05/19 PHP
php 多个变量指向同一个引用($b = &$a)用法分析
2019/11/13 PHP
Thinkphp5+Redis实现商品秒杀代码实例讲解
2020/12/29 PHP
拖拉表格的JS函数
2008/11/20 Javascript
Javascript Math ceil()、floor()、round()三个函数的区别
2010/03/09 Javascript
jQuery代码优化 事件委托篇
2011/11/01 Javascript
js设置文本框中焦点位置在最后的示例代码(简单实用)
2014/03/04 Javascript
JS实现图片产生波纹一样flash效果的方法
2015/02/27 Javascript
简介JavaScript中的push()方法的使用
2015/06/09 Javascript
浅谈JavaScript中的字符编码转换问题
2015/07/07 Javascript
基于jQuery实现二级下拉菜单效果
2016/02/01 Javascript
Jquery attr()方法 属性赋值和属性获取详解
2016/04/15 Javascript
js 求时间差的实现代码
2016/04/26 Javascript
简单三步实现报表页面集成天气
2016/12/15 Javascript
详解AngularJS 模块化
2017/06/14 Javascript
在 Typescript 中使用可被复用的 Vue Mixin功能
2018/04/17 Javascript
使用Vue 自定义文件选择器组件的实例代码
2020/03/04 Javascript
vue实现购物车案例
2020/05/30 Javascript
vue 子组件和父组件传值的示例
2020/09/11 Javascript
python的即时标记项目练习笔记
2014/09/18 Python
深入理解Javascript中的this关键字
2015/03/27 Python
Python合并多个装饰器小技巧
2015/04/28 Python
python 实现求解字符串集的最长公共前缀方法
2018/07/20 Python
python实现简单加密解密机制
2019/03/19 Python
python创建学生成绩管理系统
2019/11/22 Python
CSS3绘制不规则图形的一些方法示例
2015/11/07 HTML / CSS
顶岗实习接收函
2014/01/09 职场文书
计算机应届毕业生自荐信范文
2014/02/23 职场文书
眼镜促销方案
2014/03/15 职场文书
机关党员公开承诺书
2014/08/30 职场文书
户外亲子活动总结
2015/05/08 职场文书
雷锋观后感
2015/06/10 职场文书
年终工作总结范文
2019/06/20 职场文书
有趣的二维码:使用MyQR和qrcode来制作二维码
2021/05/10 Python
MySQL中存储时间的最佳实践指南
2021/07/01 MySQL