用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使用rsa加密算法模块模拟新浪微博登录
Jan 22 Python
Python脚本判断 Linux 是否运行在虚拟机上
Apr 25 Python
python直接访问私有属性的简单方法
Jul 25 Python
python 调用c语言函数的方法
Sep 29 Python
Python实现返回数组中第i小元素的方法示例
Dec 04 Python
flask框架视图函数用法示例
Jul 19 Python
PyTorch中Tensor的维度变换实现
Aug 18 Python
YUV转为jpg图像的实现
Dec 09 Python
wxPython修改文本框颜色过程解析
Feb 14 Python
详解基于Scrapy的IP代理池搭建
Sep 29 Python
一文带你掌握Pyecharts地理数据可视化的方法
Feb 06 Python
Python使用mitmproxy工具监控手机 下载手机小视频
Apr 18 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
自制短波长线天线频率预选器 - 成功消除B2K之流的镜像
2021/03/02 无线电
PHP 的异常处理、错误的抛出及回调函数等面向对象的错误处理方法
2012/12/07 PHP
PHP PDOStatement::columnCount讲解
2019/01/30 PHP
在视频前插入广告
2006/11/20 Javascript
javascript 星级评分效果(手写)
2012/12/24 Javascript
jquery固定底网站底部菜单效果
2013/08/13 Javascript
JavaScript伸缩的菜单简单示例
2013/12/03 Javascript
js创建表单元素并使用submit进行提交
2014/08/14 Javascript
jquery实现拖动效果
2016/08/10 Javascript
JavaScript生成验证码并实现验证功能
2016/09/24 Javascript
将鼠标焦点定位到文本框最后(代码分享)
2017/01/11 Javascript
JS实现的点击表头排序功能示例
2017/03/27 Javascript
js实现本地时间同步功能
2017/08/26 Javascript
vue.js绑定事件监听器示例【基于v-on事件绑定】
2018/07/07 Javascript
vue-router传递参数的几种方式实例详解
2018/11/13 Javascript
在vue中实现禁止屏幕滚动,禁止屏幕滑动
2020/07/22 Javascript
JavaScript对象访问器Getter及Setter原理解析
2020/12/08 Javascript
Python实现模拟登录及表单提交的方法
2015/07/25 Python
Python使用matplotlib绘制多个图形单独显示的方法示例
2018/03/14 Python
利用python将json数据转换为csv格式的方法
2018/03/22 Python
Python字典的基本用法实例分析【创建、增加、获取、修改、删除】
2019/03/05 Python
Django REST framework 如何实现内置访问频率控制
2019/07/23 Python
python正则-re的用法详解
2019/07/28 Python
python使用PIL和matplotlib获取图片像素点并合并解析
2019/09/10 Python
13个Pandas实用技巧,助你提高开发效率
2020/08/19 Python
Python 用__new__方法实现单例的操作
2020/12/11 Python
html5 canvas 简单画板实现代码
2012/01/05 HTML / CSS
卡拉威高尔夫官方网站:Callaway Golf
2020/09/16 全球购物
介绍一下结构化程序设计方法和面向对象程序设计方法的区别
2012/06/27 面试题
通信工程专业毕业生推荐信
2013/12/25 职场文书
婚纱摄影师求职信范文
2014/04/17 职场文书
党员反对四风问题思想汇报
2014/09/12 职场文书
电工实训报告总结
2014/11/05 职场文书
2015年世界无车日活动总结
2015/03/23 职场文书
优秀创业计划书分享
2019/07/19 职场文书
《仙剑客栈2》第一弹正式宣传片公开 年内发售
2022/04/07 其他游戏