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中if __name__ == "__main__"详细解释
Oct 21 Python
Python是编译运行的验证方法
Jan 30 Python
深入浅出分析Python装饰器用法
Jul 28 Python
Python探索之Metaclass初步了解
Oct 28 Python
Python基于PyGraphics包实现图片截取功能的方法
Dec 21 Python
对Python中range()函数和list的比较
Apr 19 Python
Python实现SQL注入检测插件实例代码
Feb 02 Python
python nmap实现端口扫描器教程
May 28 Python
Python 自动登录淘宝并保存登录信息的方法
Sep 04 Python
Python使用正则实现计算字符串算式
Dec 29 Python
Python错误的处理方法
Jun 23 Python
Python如何对XML 解析
Jun 28 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实现生成vcf vcard文件功能类定义与使用方法详解【附demo源码下载】
2017/09/02 PHP
php计数排序算法的实现代码(附四个实例代码)
2020/03/31 PHP
js正确获取元素样式详解
2009/08/07 Javascript
js弹出框轻量级插件jquery.boxy使用介绍
2013/01/15 Javascript
文本框倒叙输入让输入框的焦点始终在最开始的位置
2014/09/01 Javascript
深入理解JavaScript系列(38):设计模式之职责链模式详解
2015/03/04 Javascript
跟我学习javascript的函数和函数表达式
2015/11/16 Javascript
页面缩放兼容性处理方法(zoom,Firefox火狐浏览器)
2017/08/29 Javascript
Node.js中Bootstrap-table的两种分页的实现方法
2017/09/18 Javascript
基于Vue框架vux组件库实现上拉刷新功能
2017/11/28 Javascript
vue组件传递对象中实现单向绑定的示例
2018/02/28 Javascript
vue webpack实用技巧总结
2018/04/24 Javascript
浅谈如何使用webpack构建多页面应用
2018/05/30 Javascript
mpvue写一个CPASS小程序的示例
2018/09/04 Javascript
后台使用freeMarker和前端使用vue的方法及遇到的问题
2019/06/13 Javascript
微信小程序自定义弹出模态框禁止底部滚动功能
2020/03/09 Javascript
[02:49]2014DOTA2电竞也是体育项目! 势要把荣誉带回中国!
2014/07/20 DOTA
python中pygame针对游戏窗口的显示方法实例分析(附源码)
2015/11/11 Python
Django实现登录随机验证码的示例代码
2018/06/20 Python
解决Python 中英文混输格式对齐的问题
2018/07/16 Python
Python读取Excel表格,并同时画折线图和柱状图的方法
2018/10/14 Python
用Django写天气预报查询网站
2018/10/21 Python
pandas DataFrame创建方法的方式
2019/08/02 Python
pandas和spark dataframe互相转换实例详解
2020/02/18 Python
Python+OpenCV图像处理——图像二值化的实现
2020/10/24 Python
纯CSS绘制漂亮的圆形图案效果
2014/05/07 HTML / CSS
如何在网站上添加谷歌定位信息
2016/04/16 HTML / CSS
阿根廷在线宠物商店:Puppis
2018/03/23 全球购物
全球最大的户外用品零售商之一:The House
2018/06/12 全球购物
宏碁西班牙官网:Acer西班牙
2021/01/08 全球购物
Why we need EJB
2016/10/20 面试题
制药工程专业应届生求职信
2013/09/24 职场文书
《值日生》教学反思
2014/02/17 职场文书
《白鹅》教学反思
2014/04/13 职场文书
社区精神文明建设汇报材料
2014/08/17 职场文书
天那边观后感
2015/06/09 职场文书