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操作字典类型的常用方法(推荐)
May 16 Python
带你了解python装饰器
Jun 15 Python
Python中eval带来的潜在风险代码分析
Dec 11 Python
python实现监控某个服务 服务崩溃即发送邮件报告
Jun 21 Python
python从子线程中获得返回值的方法
Jan 30 Python
Python多进程fork()函数详解
Feb 22 Python
pandas分区间,算频率的实例
Jul 04 Python
Python实现Selenium自动化Page模式
Jul 14 Python
python实现猜单词游戏
May 22 Python
Keras—embedding嵌入层的用法详解
Jun 10 Python
keras使用Sequence类调用大规模数据集进行训练的实现
Jun 22 Python
Django框架中模型的用法
Jun 10 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类自动装载、链式操作、魔术方法实现代码
2017/07/23 PHP
php-7.3.6 编译安装过程
2020/02/11 PHP
PHP实现简易用户登录系统
2020/07/10 PHP
农历与西历对照
2006/09/06 Javascript
javascript之更有效率的字符串替换
2008/08/02 Javascript
比较简单的异步加载JS文件的代码
2009/07/18 Javascript
Javascript Throttle & Debounce应用介绍
2013/03/19 Javascript
ExtJs设置GridPanel表格文本垂直居中示例
2013/07/15 Javascript
判断ie的两种简单方法
2013/08/12 Javascript
设置jsf的选择框h:selectOneMenu为不可编辑状态的方法
2014/01/07 Javascript
javascript实现修改微信分享的标题内容等
2014/12/11 Javascript
分享两个手机访问pc网站自动跳转手机端网站代码
2020/12/24 Javascript
jquery中EasyUI实现异步树
2015/03/01 Javascript
js限制input标签中只能输入中文
2015/06/26 Javascript
javascript实现树形菜单的方法
2015/07/17 Javascript
jQuery 获取页面li数组并删除不在数组中的key
2016/08/02 Javascript
Vue组件之全局组件与局部组件的使用详解
2017/10/09 Javascript
微信小程序支付之c#后台实现方法
2017/10/19 Javascript
详解vue 单页应用(spa)前端路由实现原理
2018/04/04 Javascript
Vue的编码技巧与规范使用详解
2019/08/28 Javascript
Vue组件简易模拟实现购物车
2020/12/21 Vue.js
python使用正则表达式提取网页URL的方法
2015/05/26 Python
Python的Django框架中URLconf相关的一些技巧整理
2015/07/18 Python
python字典的常用操作方法小结
2016/05/16 Python
python pandas写入excel文件的方法示例
2019/06/25 Python
简单了解Python生成器是什么
2019/07/02 Python
Python基于paramunittest模块实现excl参数化
2020/04/26 Python
美国网上书店:Barnes & Noble
2018/08/15 全球购物
校园十佳歌手策划书
2014/01/22 职场文书
12月小学生校园广播稿
2014/02/04 职场文书
学习标兵获奖感言
2014/02/20 职场文书
中国入世承诺
2014/04/01 职场文书
2014年酒店工作总结与计划
2014/11/17 职场文书
2015年秘书个人工作总结
2015/04/25 职场文书
新店开张宣传语
2015/07/13 职场文书
阿里云 Windows server 2019 配置FTP
2022/04/28 Servers