用Python写的图片蜘蛛人代码


Posted in Python onAugust 27, 2012
#coding=utf-8 import os 
import sys 
import re 
import urllib 
URL_REG = re.compile(r'(http://[^///]+)', re.I) 
IMG_REG = re.compile(r'<img[^>]*?src=([/'"])([^/1]*?)/1', re.I) 
def download(dir, url): 
'''下载网页中的图片 
@dir 保存到本地的路径 
@url 网页url 
''' 
global URL_REG, IMG_REG 
m = URL_REG.match(url) 
if not m: 
print '[Error]Invalid URL: ', url 
return 
host = m.group(1) 
if not os.path.isdir(dir): 
os.mkdir(dir) 
# 获取html,提取图片url 
html = urllib.urlopen(url).read() 
imgs = [item[1].lower() for item in IMG_REG.findall(html)] 
f = lambda path: path if path.startswith('http://') else / 
host + path if path.startswith('/') else url + '/' + path 
imgs = list(set(map(f, imgs))) 
print '[Info]Find %d images.' % len(imgs) 
# 下载图片 
for idx, img in enumerate(imgs): 
name = img.split('/')[-1] 
path = os.path.join(dir, name) 
try: 
print '[Info]Download(%d): %s'% (idx + 1, img) 
urllib.urlretrieve(img, path) 
except: 
print "[Error]Cant't download(%d): %s" % (idx + 1, img) 
def main(): 
if len(sys.argv) != 3: 
print 'Invalid argument count.' 
return 
dir, url = sys.argv[1:] 
download(dir, url) 
if __name__ == '__main__': 
# download('D://Imgs', 'http://www.163.com') 
main()
Python 相关文章推荐
python利用lxml读写xml格式的文件
Aug 10 Python
python 实现tar文件压缩解压的实例详解
Aug 20 Python
Python迭代器定义与简单用法分析
Apr 30 Python
Python将多个list合并为1个list的方法
Jun 27 Python
分享Python切分字符串的一个不错方法
Dec 14 Python
在Pycharm terminal中字体大小设置的方法
Jan 16 Python
python生成特定分布数的实例
Dec 05 Python
Python数据可视化:顶级绘图库plotly详解
Dec 07 Python
django实现后台显示媒体文件
Apr 07 Python
python批量生成条形码的示例
Oct 10 Python
浅谈Python 中的复数问题
May 19 Python
Python实现机器学习算法的分类
Jun 03 Python
Python模块学习 filecmp 文件比较
Aug 27 #Python
Python模块学习 datetime介绍
Aug 27 #Python
Python运行的17个时新手常见错误小结
Aug 07 #Python
Python 代码性能优化技巧分享
Aug 07 #Python
Python正则表达式介绍
Aug 06 #Python
python 实现文件的递归拷贝实现代码
Aug 02 #Python
python实现划词翻译
Apr 23 #Python
You might like
全国FM电台频率大全 - 25 云南省
2020/03/11 无线电
Apache中php.ini的设置方法
2013/02/28 PHP
Laravel 5框架学习之向视图传送数据
2015/04/08 PHP
php使用ZipArchive函数实现文件的压缩与解压缩
2015/10/27 PHP
php实现微信企业号支付个人的方法详解
2017/07/26 PHP
PHP开发之归档格式phar文件概念与用法详解【创建,使用,解包还原提取】
2017/11/17 PHP
基于JQuery 选择器使用说明介绍
2013/04/18 Javascript
js局部刷新页面时间具体实现
2013/07/04 Javascript
setInterval计时器不准的问题解决方法
2014/05/08 Javascript
详解JavaScript操作HTML DOM的基本方式
2015/10/21 Javascript
js如何判断是否在iframe中及防止网页被别站用iframe嵌套
2017/01/11 Javascript
浅谈Vuejs中nextTick()异步更新队列源码解析
2017/12/31 Javascript
iview table render集成switch开关的实例
2018/03/14 Javascript
JavaScript如何对图片进行黑白化
2018/04/10 Javascript
vue.js实现数据库的JSON数据输出渲染到html页面功能示例
2019/08/03 Javascript
JavaScript的查询机制LHS和RHS解析
2019/08/16 Javascript
微信小程序获取复选框全选反选选中的值(实例代码)
2019/12/17 Javascript
微信小程序自定义弹出模态框禁止底部滚动功能
2020/03/09 Javascript
从Node.js事件触发器到Vue自定义事件的深入讲解
2020/06/26 Javascript
pandas读取csv文件,分隔符参数sep的实例
2018/12/12 Python
对Python生成汉字字库文字,以及转换为文字图片的实例详解
2019/01/29 Python
python 根据字典的键值进行排序的方法
2019/07/24 Python
Python函数基本使用原理详解
2020/03/19 Python
python 连续不等式语法糖实例
2020/04/15 Python
Python爬虫过程解析之多线程获取小米应用商店数据
2020/11/14 Python
python利用xpath爬取网上数据并存储到django模型中
2021/02/26 Python
HTML5 播放 RTSP 视频的实例代码
2019/07/29 HTML / CSS
Blue Nile台湾:钻石珠宝商,订婚首饰、结婚戒指和精品首饰
2017/11/24 全球购物
关联、聚合(Aggregation)以及组合(Composition)的区别
2012/02/29 面试题
广告设计专业自荐信范文
2013/11/14 职场文书
车辆工程专业求职信
2014/04/28 职场文书
人力资源管理专业毕业生自荐书
2014/05/25 职场文书
先进党组织事迹材料
2014/12/26 职场文书
你离财务总监还有多远?速览CFO的岗位职责
2019/11/18 职场文书
JS setTimeout与setInterval的区别
2022/04/20 Javascript
MySQL添加索引特点及优化问题
2022/07/23 MySQL