用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 02 Python
菜鸟使用python实现正则检测密码合法性
Jan 05 Python
Using Django with GAE Python 后台抓取多个网站的页面全文
Feb 17 Python
Python利用ElementTree模块处理XML的方法详解
Aug 31 Python
python使用Tkinter实现在线音乐播放器
Jan 30 Python
一篇文章弄懂Python中所有数组数据类型
Jun 23 Python
Python秒算24点实现及原理详解
Jul 29 Python
详解python 利用echarts画地图(热力图)(世界地图,省市地图,区县地图)
Aug 06 Python
python自动下载图片的方法示例
Mar 25 Python
python如何调用字典的key
May 25 Python
opencv 图像轮廓的实现示例
Jul 08 Python
python可视化分析的实现(matplotlib、seaborn、ggplot2)
Feb 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
对盗链说再见...
2006/10/09 PHP
thinkphp 多表 事务详解
2013/06/17 PHP
Laravel 4 初级教程之安装及入门
2014/10/30 PHP
PHP读取txt文本文件并分页显示的方法
2015/03/11 PHP
使用 PHP Masked Package 屏蔽敏感数据的实现方法
2019/10/15 PHP
Mootools 1.2教程 Tooltips
2009/09/15 Javascript
js修改地址栏URL参数解决url参数问题
2012/12/15 Javascript
jquery设置元素的readonly和disabled的写法
2013/09/22 Javascript
javaScript 页面自动加载事件详解
2014/02/10 Javascript
比较不错的JS/JQuery显示或隐藏文本的方法
2014/02/13 Javascript
JS 新增Cookie 取cookie值 删除cookie 举例详解
2014/10/10 Javascript
配置Grunt的Task时通配符支持和动态生成文件名问题
2015/09/06 Javascript
Javascrip实现文字跳动特效
2016/11/27 Javascript
Vue.js实现一个漂亮、灵活、可复用的提示组件示例
2017/03/17 Javascript
jQuery实现的两种简单弹窗效果示例
2018/04/18 jQuery
vue实现在一个方法执行完后执行另一个方法的示例
2018/08/25 Javascript
详解webpack打包后如何调试的方法步骤
2018/11/07 Javascript
jquery实现动态创建form并提交的方法示例
2019/05/27 jQuery
vue更改数组中的值实例代码详解
2020/02/07 Javascript
python中异常捕获方法详解
2017/03/03 Python
Python优先队列实现方法示例
2017/09/21 Python
python函数式编程学习之yield表达式形式详解
2018/03/25 Python
Python实现按逗号分隔列表的方法
2018/10/23 Python
详解Python requests 超时和重试的方法
2018/12/18 Python
Python线程池模块ThreadPoolExecutor用法分析
2018/12/28 Python
python数据库开发之MongoDB安装及Python3操作MongoDB数据库详细方法与实例
2020/03/18 Python
Python使用Turtle模块绘制国旗的方法示例
2021/02/28 Python
Calphalon美国官网:美国顶级锅具品牌
2020/02/05 全球购物
个人简历自我鉴定
2013/10/11 职场文书
上课玩手机检讨书
2014/02/08 职场文书
捐款活动总结
2014/08/27 职场文书
前台接待岗位职责范本
2015/04/03 职场文书
2015年财务科工作总结范文
2015/05/13 职场文书
七年级之开学家长寄语35句
2019/09/05 职场文书
Python如何使用循环结构和分支结构
2022/04/13 Python
Python实现将多张图片合成MP4视频并加入背景音乐
2022/04/28 Python