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中使用urllib2获取http请求状态码的代码例子
Jul 07 Python
进一步了解Python中的XML 工具
Apr 13 Python
python传递参数方式小结
Apr 17 Python
开始着手第一个Django项目
Jul 15 Python
Python基于正则表达式实现检查文件内容的方法【文件检索】
Aug 30 Python
利用Python库Scapy解析pcap文件的方法
Jul 23 Python
Django如何使用第三方服务发送电子邮件
Aug 14 Python
python 数据生成excel导出(xlwt,wlsxwrite)代码实例
Aug 23 Python
Python检查图片是否损坏及图片类型是否正确过程详解
Sep 30 Python
Django中的session用法详解
Mar 09 Python
如何在Python 游戏中模拟引力
Mar 27 Python
Python中全局变量和局部变量的理解与区别
Feb 07 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中动态HTML的输出技术
2006/10/09 PHP
php多个字符串替换成同一个的解决方法
2013/06/18 PHP
一个PHP二维数组排序的函数分享
2014/01/17 PHP
php实现的click captcha点击验证码类实例
2014/09/23 PHP
浅谈PHP中pack、unpack的详细用法
2018/03/12 PHP
javascript继承之为什么要继承
2012/11/10 Javascript
jquery 插件开发 extjs中的extend用法小结
2013/01/04 Javascript
jquery选择器的选择使用及性能介绍
2013/01/16 Javascript
JS获取当前网页大小以及屏幕分辨率等
2014/09/05 Javascript
js使用Array.prototype.sort()对数组对象排序的方法
2015/01/28 Javascript
JS获得图片alt信息的方法
2015/04/01 Javascript
jQuery动画效果实现图片无缝连续滚动
2016/01/12 Javascript
JS+CSS实现鼠标经过弹出一个DIV框完整实例(带缓冲动画渐变效果)
2016/03/25 Javascript
JS实现保留n位小数的四舍五入问题示例
2016/08/03 Javascript
AngularJS页面带参跳转及参数解析操作示例
2017/06/28 Javascript
原生js实现each方法实例代码详解
2019/05/27 Javascript
vue动态路由:路由参数改变,视图不更新问题的解决
2019/11/05 Javascript
Angular单元测试之事件触发的实现
2020/01/20 Javascript
vue动态渲染svg、添加点击事件的实现
2020/03/13 Javascript
JS数组的高级使用方法示例小结
2020/03/14 Javascript
vue3弹出层V3Popup实例详解
2021/01/04 Vue.js
[01:45]DOTA2新英雄“神谕者”全方位展示
2014/11/21 DOTA
python 参数列表中的self 显式不等于冗余
2008/12/01 Python
Python初学时购物车程序练习实例(推荐)
2017/08/08 Python
pandas 选择某几列的方法
2018/07/03 Python
python中的线程threading.Thread()使用详解
2019/12/17 Python
将HTML5 Canvas的内容保存为图片借助toDataURL实现
2013/05/20 HTML / CSS
Html5页面上如何禁止手机虚拟键盘弹出
2020/03/19 HTML / CSS
Big Green Smile德国网上商店:提供各种天然产品
2018/05/23 全球购物
酒店中秋节活动方案
2014/01/31 职场文书
财务总监管理岗位职责
2014/03/08 职场文书
组工干部对照检查材料
2014/08/25 职场文书
卖房协议书样本
2014/10/30 职场文书
教师个人事迹材料
2014/12/17 职场文书
利用nginx搭建RTMP视频点播、直播、HLS服务器
2022/05/25 Servers
java中如何截取字符串最后一位
2022/07/07 Java/Android