用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中逗号的三种作用实例分析
Jun 08 Python
Python科学计算之Pandas详解
Jan 15 Python
Python zip()函数用法实例分析
Mar 17 Python
python实现windows下文件备份脚本
May 27 Python
对Python中的条件判断、循环以及循环的终止方法详解
Feb 08 Python
Python 2/3下处理cjk编码的zip文件的方法
Apr 26 Python
python使用paramiko模块通过ssh2协议对交换机进行配置的方法
Jul 25 Python
用sqlalchemy构建Django连接池的实例
Aug 29 Python
详解Django将秒转换为xx天xx时xx分
Sep 27 Python
python爬虫 线程池创建并获取文件代码实例
Sep 28 Python
python Tensor和Array对比分析
Jan 08 Python
python实现按日期归档文件
Jan 30 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学习之输出字符串(echo,print,printf,print_r和var_dump)
2011/04/17 PHP
解析PHP中ob_start()函数的用法
2013/06/24 PHP
纯PHP生成的一个树叶图片画图例子
2014/04/16 PHP
ThinkPHP使用心得分享-分页类Page的用法
2014/05/15 PHP
php封装的连接Mysql类及用法分析
2015/12/10 PHP
设定php简写功能的方法
2019/11/28 PHP
jquery 打开窗口返回值实现代码
2010/03/04 Javascript
jQuery实现的立体文字渐变效果
2010/05/17 Javascript
五段实用的js高级技巧
2011/12/20 Javascript
js实现图片旋转的三种方法
2014/04/10 Javascript
jQuery中:radio选择器用法实例
2015/01/03 Javascript
原生JS实现仿淘宝网左侧商品分类菜单效果代码
2015/09/10 Javascript
JS实现超简单的鼠标拖动效果
2015/11/02 Javascript
浅析Jquery操作select
2016/12/13 Javascript
微信小程序 仿猫眼实现实例代码
2017/03/14 Javascript
Bootstrap页面标题Page Header的实现方法
2017/03/22 Javascript
JavaScript面向对象精要(上部)
2017/09/12 Javascript
jQuery实现获取table中鼠标click点击位置行号与列号的方法
2017/10/09 jQuery
通过vue-cli来学习修改Webpack多环境配置和发布问题
2017/12/22 Javascript
Vue 中使用vue2-highcharts实现top功能的示例
2018/03/05 Javascript
vue生命周期实例小结
2018/08/15 Javascript
用python实现的可以拷贝或剪切一个文件列表中的所有文件
2009/04/30 Python
在Python中操作文件之read()方法的使用教程
2015/05/24 Python
详解Python的Django框架中的Cookie相关处理
2015/07/22 Python
Python 获得命令行参数的方法(推荐)
2018/01/24 Python
更换Django默认的模板引擎为jinja2的实现方法
2018/05/28 Python
python用opencv批量截取图像指定区域的方法
2019/01/24 Python
python flask几分钟实现web服务的例子
2019/07/26 Python
Python selenium如何打包静态网页并下载
2020/08/12 Python
pandas抽取行列数据的几种方法
2020/12/13 Python
捷克母婴用品购物网站:Feedo.cz
2020/12/28 全球购物
演讲比赛获奖感言
2014/02/02 职场文书
教师开学感言
2014/02/14 职场文书
违章停车检讨书
2014/10/21 职场文书
nginx proxy_cache 缓存配置详解
2021/03/31 Servers
python源码剖析之PyObject详解
2021/05/18 Python