Python 爬虫实例(1)—— 爬取百度图片
爬取百度图片 在Python 2.7上运行
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Author: loveNightimport json import itertools import urllib import requests import os import re import sysstr_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' }# str 的translate方法需要用单个字符的十进制unicode编码作为key # value 中的数字会被当成十进制unicode编码转换成字符 # 也可以直接用字符串作为value char_table = {ord(key): ord(value) for key, value in char_table.items()}# 解码图片URL def decode(url):# 先替换字符串for key, value in str_table.items():url = url.replace(key, value)# 再替换剩下的字符return url.translate(char_table)# 生成网址列表 def buildUrls(word):word = urllib.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))return urls# 解析JSON获取图片URL re_url = re.compile(r'"objURL":"(.*?)"') def resolveImgUrl(html):imgUrls = [decode(x) for x in re_url.findall(html)]return imgUrlsdef downImg(imgUrl, dirpath, imgName):filename = os.path.join(dirpath, imgName)try:res = requests.get(imgUrl, timeout=15)if str(res.status_code)[0] == "4":print(str(res.status_code), ":" , imgUrl)return Falseexcept Exception as e:print("抛出异常:", imgUrl)print(e)return Falsewith open(filename, "wb") as f:f.write(res.content)return Truedef mkDir(dirName):dirpath = os.path.join(sys.path[0], dirName)if not os.path.exists(dirpath):os.mkdir(dirpath)return dirpathif __name__ == '__main__':word = raw_input("请输入你要下载的图片关键词:\n")word = str(word)dirpath = mkDir("results")urls = buildUrls(word)index = 0for url in urls:print("正在请求:", url)html = requests.get(url, timeout=10).content.decode('utf-8')imgUrls = resolveImgUrl(html)if len(imgUrls) == 0: # 没有图片则结束breakfor url in imgUrls:if downImg(url, dirpath, str(index) + ".jpg"):index += 1print("已下载 %s 张" % index)
Python 爬虫实例(1)—— 爬取百度图片相关推荐
- Python爬虫实战之爬取百度贴吧帖子
Python爬虫实战之爬取百度贴吧帖子 大家好,上次我们实验了爬取了糗事百科的段子,那么这次我们来尝试一下爬取百度贴吧的帖子.与上一篇不同的是,这次我们需要用到文件的相关操作. 本篇目标 对百度贴吧的 ...
- 使用python和PyQt5编写爬取百度图片的界面工具
使用python和PyQt5编写爬取百度图片的界面工具 本篇文章的主要内容是展示我个人编写的,以界面小工具的方式爬取百度上面的图片,功能很单一,根据关键词爬取图片,代码很简单,新手上路请多指教. 代码 ...
- python爬虫爬取百度图片总结_python爬虫如何批量爬取百度图片
当我们想要获取百度图片的时候,面对一张张图片,一次次的点击右键下载十分麻烦.python爬虫可以实现批量下载,根据我们下载网站位置.图片位置.图片下载数量.图片下载位置等需求进行批量下载,本文演示py ...
- Python爬虫实战 | (9) 爬取搜狗图片
本篇博客我们将爬取百度图片,输入搜索词,爬取与搜索词相关的图片. 首先打开搜狗图片https://pic.sogou.com/,比如搜索"猫",此时的URL如下: https:// ...
- 百度贴吧界面html程序代码,python爬虫例题:爬取百度贴吧评论区图片和视频
百度贴吧是全球最大的中文交流平台,你是否跟我一样,有时候看到评论区的图片想下载呢?或者看到一段视频想进行下载呢? 今天,本期Python教程带大家通过搜索关键字来获取评论区的图片和视频. [二.项目目 ...
- Python爬虫实战之爬取百度音乐歌曲
Python爬虫爬取百度音乐歌曲 整体思路如下: 1.搜索:通过搜索界面输入歌手名字找到歌手的歌曲信息.千千音乐:网址 2.找到歌曲信息:通过遍历歌曲列表信息界面获取每个歌曲的ID,以及歌曲的总数 3 ...
- python爬虫实践之爬取美女图片
目录 概述 准备 所需模块 涉及知识点 运行效果 完成爬虫 1. 分析网页 2. 爬虫代码 概述 爬取妹子图网的美女图片. 准备 所需模块 time requests lxml 涉及知识点 pytho ...
- python爬虫实例之爬取智联招聘数据
这是作者的处女作,轻点喷.... 实习在公司时领导要求学习python,python的爬虫作为入门来说是十分友好的,话不多说,开始进入正题. 主要是爬去智联的岗位信息进行对比分析出java和pytho ...
- Python爬虫实例: 爬取“最好大学网”大学排名
实例2 爬取大学排名 上海交通大学设计了一个"最好大学网",上面列出了当前的大学排名.我们要设计爬虫程序,爬取大学排名信息. 爬虫功能要求: 输入:大学排名URL链接 输出:大学排 ...
- Python依据单个关键词爬取百度图片
最近由于工作需要要使用大量的水果蔬菜图片,故萌生使用爬虫抓取百度图片的想法,并未用于商业用途,只是为了测试数据.所以并未使用多线程.框架等技术. 由于百度图片是动态加载的,发现搜索关键词后action ...
最新文章
- sass文件编译的三种方式【舒】
- 2008最响亮的十二句屁话
- 0基础学python-从0开始学Python,0基础小白
- android studio m1,Android Studio 4.0发布 为Android 11做好准备
- CreateService / SC 创建自启动服务
- android 判断滑动方向,H5触摸事件判断滑动方向
- 数学--数论--快速幂--最大公约数--位运算模板
- Fission:基于 Kubernetes 的 Serverless 函数框架
- 源码编译安装screen
- 5.2g信道用哪个好_记工记账软件哪个比较实用?建筑工地用哪个记工记账软件好?...
- 通讯录标准化输入fread c语言,C语言实现通讯录系统
- PIC单片机入门教程(四)—— 第一个工程
- 对话马丁·福勒(Martin Fowler)——第六部分:性能与过程调优
- 大文件分割工具,QT实现
- 论文笔记:Pointing Novel Objects in Image Captioning
- XiunoBBS插件大全,可视化XiunoBBS插件
- U牌“唤醒生命,未来可7”
- 【环境配置】虚拟机中配置C++环境
- Unity 进阶 之 实现简单的音频可视化封装(包括音频和麦克风)
- 视频教程-微信小程序系统教程Java版[3/3阶段]_微信小程序电商系统-微信开发
热门文章
- mac下打开FTP服务
- VS013的单元测试去哪里了
- LIB和DLL的区别与使用,非常详细
- 《系统分析与设计方法》 计算投资回收分析
- 计算机仿真技术与应用,[计算机软件及应用]计算机仿真技术与应用简介.pdf
- Metasploit中aggregator插件无法使用
- XamarinAndroid组件教程RecylerView适配器动画动画种类
- 简单的字幕效果html,7种HTML5 Figure图片字幕标题特效
- 高级计算机网络知识点复习
- 大数据产品开发流程规范_大数据技术思想入门(三):分布式文件存储的流程