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中文件遍历的两种方法
Jun 16 Python
Python中splitlines()方法的使用简介
May 20 Python
HTML中使用python屏蔽一些基本功能的方法
Jul 07 Python
Python用csv写入文件_消除空余行的方法
Jul 06 Python
解决python3 安装不了PIL的问题
Aug 16 Python
Python模块的定义,模块的导入,__name__用法实例分析
Jan 07 Python
tensorflow:指定gpu 限制使用量百分比,设置最小使用量的实现
Feb 06 Python
opencv python 图片读取与显示图片窗口未响应问题的解决
Apr 24 Python
卸载tensorflow-cpu重装tensorflow-gpu操作
Jun 23 Python
python 两种方法修改文件的创建时间、修改时间、访问时间
Sep 26 Python
Django展示可视化图表的多种方式
Apr 08 Python
python如何读取和存储dict()与.json格式文件
Jun 25 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魔术函数__call()用法实例分析
2015/02/13 PHP
解密效果
2006/06/23 Javascript
Javascript 判断 object 的特定类转载
2007/02/01 Javascript
解决IE下select标签innerHTML插入option的BUG(兼容IE,FF,Opera,Chrome,Safari)
2010/05/13 Javascript
JSDoc 介绍使用规范JsDoc的使用介绍
2011/02/12 Javascript
js中使用DOM复制(克隆)指定节点名数据到新的XML文件中的代码
2011/07/27 Javascript
HTML5之lang属性与dir属性的详解
2013/06/19 Javascript
jQuery 重复加载错误以及修复方法
2014/12/16 Javascript
jQuery实现的多屏图像图层切换效果实例
2015/05/07 Javascript
JavaScript中reduce()方法的使用详解
2015/06/09 Javascript
深入浅析JS Function()构造函数
2016/08/22 Javascript
AngularJS封装指令方法详解
2016/12/12 Javascript
JS表单传值和URL编码转换
2018/03/03 Javascript
JS实现的tab页切换效果完整示例
2018/12/18 Javascript
Vue.js组件实现选项卡以及切换特效
2019/07/24 Javascript
通过实例解析chrome如何在mac环境中安装vue-devtools插件
2020/07/10 Javascript
[02:44]重置世界,颠覆未来——DOTA2 7.23版本震撼上线
2019/12/01 DOTA
Python使用Paramiko模块编写脚本进行远程服务器操作
2016/05/05 Python
python使用numpy读取、保存txt数据的实例
2018/10/14 Python
python多进程控制学习小结
2018/10/31 Python
python利用插值法对折线进行平滑曲线处理
2018/12/25 Python
Python 运行.py文件和交互式运行代码的区别详解
2019/07/02 Python
python障碍式期权定价公式
2019/07/19 Python
python conda操作方法
2019/09/11 Python
django2.2安装错误最全的解决方案(小结)
2019/09/24 Python
Python制作简易版小工具之计算天数的实现思路
2020/02/13 Python
python自动下载图片的方法示例
2020/03/25 Python
PyCharm最新激活码PyCharm2020.2.3有效
2020/11/18 Python
利用canvas实现图片下载功能来实现浏览器兼容问题
2019/05/31 HTML / CSS
快餐店的创业计划书范文
2014/01/29 职场文书
团日活动策划书
2014/02/01 职场文书
2014年项目工作总结
2014/11/24 职场文书
2014年创先争优工作总结
2014/12/11 职场文书
实习生个人总结范文
2015/02/28 职场文书
.Net Core导入千万级数据至Mysql的步骤
2021/05/24 MySQL
vue响应式原理与双向数据的深入解析
2021/06/04 Vue.js