用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实现的简单文件传输服务器和客户端
Apr 08 Python
Python一句代码实现找出所有水仙花数的方法
Nov 13 Python
python numpy元素的区间查找方法
Nov 14 Python
python实现字符串加密 生成唯一固定长度字符串
Mar 22 Python
python异常触发及自定义异常类解析
Aug 06 Python
浅谈Python中(&amp;,|)和(and,or)之间的区别
Aug 07 Python
Python 通过截图匹配原图中的位置(opencv)实例
Aug 27 Python
解决pycharm上的jupyter notebook端口被占用问题
Dec 17 Python
基于python实现语音录入识别代码实例
Jan 17 Python
jupyter notebook参数化运行python方式
Apr 10 Python
Python约瑟夫生者死者小游戏实例讲解
Jan 04 Python
Python制作春联的示例代码
Jan 22 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
在PHP中使用灵巧的体系结构
2006/10/09 PHP
如何批量替换相对地址为绝对地址(利用bat批处理实现)
2013/05/27 PHP
PHP CURL 多线程操作代码实例
2015/05/13 PHP
ThinkPHP3.2.3框架Memcache缓存使用方法实例总结
2019/04/15 PHP
swoole锁的机制代码实例讲解
2021/03/04 PHP
可拖动窗口,附带鼠标控制渐变透明,开启关闭功能
2006/06/26 Javascript
js function使用心得
2010/05/10 Javascript
Javascript继承(上)——对象构建介绍
2012/11/08 Javascript
javascript上传图片前预览图片兼容大多数浏览器
2013/10/25 Javascript
快速学习jQuery插件 Form表单插件使用方法
2015/12/01 Javascript
总结JavaScript的正则与其他语言的不同之处
2016/08/25 Javascript
使用vue.js在页面内组件监听scroll事件的方法
2018/09/11 Javascript
React事件处理的机制及原理
2018/12/03 Javascript
layui 选择列表,打勾,点击确定返回数据的例子
2019/09/02 Javascript
python操作mongodb根据_id查询数据的实现方法
2015/05/20 Python
Python os模块学习笔记
2015/06/21 Python
用pickle存储Python的原生对象方法
2017/04/28 Python
利用python爬取散文网的文章实例教程
2017/06/18 Python
Python学习笔记之open()函数打开文件路径报错问题
2018/04/28 Python
python保留格式汇总各部门excel内容的实现思路
2020/06/01 Python
Python列表推导式实现代码实例
2020/09/09 Python
css3动画效果抖动解决方法
2018/09/03 HTML / CSS
匡威爱尔兰官网:Converse爱尔兰
2019/06/09 全球购物
自我鉴定思想方面
2013/10/07 职场文书
年度考核自我鉴定
2013/11/09 职场文书
财务经理的岗位职责
2013/12/17 职场文书
员工评语大全
2014/01/19 职场文书
服务员岗位职责
2014/01/29 职场文书
人事文员岗位职责
2014/02/16 职场文书
五五普法心得体会
2014/09/04 职场文书
与美同行演讲稿
2014/09/13 职场文书
学习三严三实心得体会
2014/10/13 职场文书
银行员工考核评语
2014/12/31 职场文书
学雷锋日活动总结
2015/02/06 职场文书
推普标语口号大全
2015/12/26 职场文书