python 爬虫批量下载图片
今天加班啊,苦啊!!
无聊,用python写了一个抓图片的爬虫,感觉很不错啊,哈哈
先贴上代码:(python 版本:2.7.9)
__author__ = 'bloodchilde'import urllib
import urllib2
import re
import osclass Spider:def __init__(self):self.siteUrl="http://sc.chinaz.com/biaoqing/"self.user_agent = 'Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko'self.headers = { 'User-Agent' : self.user_agent }def getPage(self,pageIndex):url = self.siteUrl+"index_"+str(pageIndex)+".html"request = urllib2.Request(url,headers = self.headers)response = urllib2.urlopen(request)return response.read().decode("utf-8")def getContents(self,pageIndex):page = self.getPage(pageIndex)pattern = re.compile('''<div.*?class='num_1'.*?>.*?<p>.*?<a.*?href='.*?'.*?target='_blank'.*?title='(.*?)'.*?><img.*?src2="(.*?)".*?>.*?</a>.*?</p>.*?</div>''',re.S)items = re.findall(pattern,page)contents=[]for item in items:contents.append([item[0],item[1]])return contentsdef mk_dir(self,path):isExisist = os.path.exists(path)if not isExisist:os.makedirs(path)return Trueelse:return Falsedef downImage(self,url,dirname):imageUrl = urlrequest = urllib2.Request(imageUrl,headers = self.headers)response = urllib2.urlopen(request)imageContents = response.read()urlArr = imageUrl.split(u"/")imageName = str(urlArr[len(urlArr)-1])print imageNamepath = u"C:/Users/bloodchilde/Desktop/image_python/"+dirnameself.mk_dir(path)imagePath = path+u"/"+imageNamef = open(imagePath, 'wb')f.write(imageContents)f.close()def downLoadAllPicture(self,PageIndex):contents = self.getContents(PageIndex)for list in contents:dirname = list[0]imageUrl = list[1]self.downImage(imageUrl,dirname)demo = Spider()for page in range(3,100):demo.downLoadAllPicture(page)
效果如下:
下载这么多图片,瞬间搞定,下面来分析一下程序:
首先,我的目标网页是:
http://sc.chinaz.com/biaoqing/index_3.html
程序功能是到这个网页下载表情图片
程序思路:
1,获取网页的源码信息
2,解析源码获取要下载的图片的URL(正则处理)
3,重新定位url向这个图片的url发起请求获取url的信息,这个url信息其实就是图片内容contents
4,通过上面获取的图片的URL还可以获取图片的名称(带后缀名) imageName
5,在本地创建文件以获取的imageName命名,将内容contents写进文件即可
打开http://sc.chinaz.com/biaoqing/index_3.html,查看源码,找到要处理的代码段如下:
对应的正则是:
'''<div.*?class='num_1'.*?>.*?<p>.*?<a.*?href='.*?'.*?target='_blank'.*?title='(.*?)'.*?><img.*?src2="(.*?)".*?>.*?</a>.*?</p>.*?</div>'''
我们要从代码段中获取title和src2,title作为文件夹名,src2作为目标图片URL
是不是感觉很简单啊。。。。
python 爬虫批量下载图片相关推荐
- python爬虫批量下载图片
使用python的urllib库和正则表达式爬取 学习地址(自行base64解密):aHR0cDovL3BpYy5uZXRiaWFuLmNvbQ== 网站图片,支持批量下载. (本文仅供学习交流,请勿 ...
- python爬虫批量下载“简谱”
python讨论qq群:996113038 导语: 上次发过一篇关于"python打造电子琴"的文章,从阅读量来看,我们公众号的粉丝里面还是有很多对音乐感兴趣的朋友的.于是,今天我 ...
- 【爬虫实战项目】Python爬虫批量下载音乐飙升榜并保存本地(附源码)
前言 今天给大家介绍的是Python爬虫批量下载音乐飙升榜并保存本地,在这里给需要的小伙伴们代码,并且给出一点小心得. 首先是爬取之前应该尽可能伪装成浏览器而不被识别出来是爬虫,基本的是加请求头,但是 ...
- 【爬虫实战项目】Python爬虫批量下载评书音频并保存本地(附源码)
前言 今天给大家介绍的是Python爬虫批量下载评书音频并保存本地,在这里给需要的小伙伴们代码,并且给出一点小心得. 首先是爬取之前应该尽可能伪装成浏览器而不被识别出来是爬虫,基本的是加请求头,但是这 ...
- 新一配:perl循环调用python爬虫批量下载喜马拉雅音频
新一配:perl循环调用python爬虫批量下载喜马拉雅音频 手机下载喜马拉雅音频后,获得的音频文件虽然可以转成mp3格式,但其文件名却是一长串字符串,无法辨别是哪一集,网上找了各种工具,都有局限性, ...
- python怎么批量下载图片_怎样批量下载在线图片?
原标题:怎样批量下载在线图片? 大家早啊,我是云景,以前分享过很多关于批量下载图片的技巧,有使用插件程序的,有使用工具的. 之前也教过大家怎么使用F12开发者 今天给大家分享的是,使用Python来批 ...
- python multiprocessing 批量下载图片+tqdm
紧接着我的上一篇博客:用tqdm可视化loop过程,我将继续探索multiprocessing 批量下载图片+tqdm 首先,是安装multiprocessing模块了,注意在python3下pip ...
- python爬虫 批量下载高清大图
文章目录 前言 下载免费高清大图 下载带水印的精选图 代码与总结 前言 在上一篇写文章没高质量配图?python爬虫绕过限制一键搜索下载图虫创意图片!中,我们在未登录的情况下实现了图虫创意无水印高清小 ...
- 第二弹!python爬虫批量下载高清大图
文章目录 前言 下载免费高清大图 下载带水印的精选图 代码与总结 前言 在上一篇写文章没高质量配图?python爬虫绕过限制一键搜索下载图虫创意图片!中,我们在未登录的情况下实现了图虫创意无水印高清小 ...
最新文章
- linux insight 使用教程,Insight API开源项目分析
- Android重写FragmentTabHost来实现状态保存
- 文巾解题 1877. 数组中最大数对和的最小值
- android ble 实现自动连接,Android:自动重新连接BLE设备
- SKYLINE UVALive - 4108
- luoguP1742 最小圆覆盖
- 全程软件测试之测试需求分析与计划(3)
- rest 网络设计开发,降低复杂性设计方案
- 准备系统地学习一下Python
- 印刷体汉字识别matlab实现,如何用MATLAB仿真印刷体汉字识别系统?
- ssh 连接访问被拒绝
- 开启灯光就是近光吗_自动大灯会自动调远近光吗
- 如何在PPT中制作动态图表,学会这种方法实在太简单
- ES复杂分组同时多聚合统计实现(java)
- JAVA游戏引擎!FXGL 教程 总目录
- 安卓机器人做图软件_机器人管理与开发软件RoboStudio出安卓版本啦~
- 什么是软件测试?软件测试的目的和流程是什么?——入门软件测试
- vscode 解决端口被占用问题
- 成都Java开发工程师工资有多高
- DAM | 提升品牌自播引流能力的「幕后」推手 | 数字内容管理 引流营销资源
热门文章
- 软件测试找不到工作怎么办
- wps怎么将字体嵌入文件_WPS文字怎么将字体嵌入文件让含有特殊字体的文档正常显示...
- jqgrid内容自动填充
- 《算法笔记》7.3 链表
- 事业环境因素和组织过程资产的理解与比较
- 肾囊肿会不会癌变呢?
- LookupError: unknown encoding: 65001
- 【3D目标检测】3D Object Detection for Autonomous Driving: A Survey
- source insight怎样恢复默认界面设置!
- optfine的jar文件打不开_我的世界MclauncherBN启动器