用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 相关文章推荐
pycharm 使用心得(五)断点调试
Jun 06 Python
python通过get,post方式发送http请求和接收http响应的方法
May 26 Python
django基础之数据库操作方法(详解)
May 24 Python
python实现机器人行走效果
Jan 29 Python
Pyinstaller将py打包成exe的实例
Mar 31 Python
python 调试冷知识(小结)
Nov 11 Python
python实现TCP文件传输
Mar 20 Python
python和JavaScript哪个容易上手
Jun 23 Python
python+requests接口自动化框架的实现
Aug 31 Python
详解python 条件语句和while循环的实例代码
Dec 28 Python
pytho matplotlib工具栏源码探析一之禁用工具栏、默认工具栏和工具栏管理器三种模式的差异
Feb 25 Python
Pytorch使用shuffle打乱数据的操作
May 20 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批量生成缩略图的代码
2008/07/19 PHP
使用 PHPMAILER 发送邮件实例应用
2012/11/07 PHP
SESSION存放在数据库用法实例
2015/08/08 PHP
PHP有序表查找之插值查找算法示例
2018/02/10 PHP
php从数据库中获取数据用ajax传送到前台的方法
2018/08/20 PHP
php解析非标准json、非规范json的方式实例
2020/12/10 PHP
Gird组件 Part-3:范例RSSFeed Viewer
2007/03/10 Javascript
Extjs4 Treegrid 使用心得分享(经验篇)
2013/07/01 Javascript
jquery实现图片灯箱明暗的遮罩效果
2013/11/15 Javascript
使用js简单实现了tree树菜单
2013/11/20 Javascript
禁用JavaScript控制台调试的方法
2014/03/07 Javascript
使用js画图之饼图
2015/01/12 Javascript
jQuery中iframe的操作(点击按钮新增窗口)
2016/04/20 Javascript
Mvc提交表单的四种方法全程详解
2016/08/10 Javascript
微信小程序 window_x64环境搭建
2016/09/30 Javascript
angular-ngSanitize模块-$sanitize服务详解
2017/06/13 Javascript
javascript流程控制语句集合
2017/09/18 Javascript
微信公众号H5支付接口调用方法
2019/01/10 Javascript
微信小程序第三方框架对比 之 wepy / mpvue / taro
2019/04/10 Javascript
浅谈es6中的元编程
2020/12/01 Javascript
javascript中导出与导入实现模块化管理教程
2020/12/03 Javascript
Canvas绘制浮动球效果的示例
2017/12/29 HTML / CSS
英国轻奢珠宝品牌:Astley Clarke
2016/12/18 全球购物
意大利中国电子产品购物网站:Geekmall.com
2019/09/30 全球购物
软件测试企业面试试卷
2016/07/13 面试题
青年创业培训欢迎词
2014/01/10 职场文书
致铅球运动员加油稿
2014/02/13 职场文书
主管竞聘书范文
2014/03/31 职场文书
优秀的导游求职信范文
2014/04/06 职场文书
作风建设剖析材料
2014/10/06 职场文书
详解Nginx 工作原理
2021/03/31 Servers
Python包管理工具pip的15 个使用小技巧
2021/05/17 Python
浅谈Python中的正则表达式
2021/06/28 Python
springboot读取resources下文件的方式详解
2022/06/21 Java/Android
Win11 22H2 2022怎么更新? 获得Win1122H22022版本升级技巧
2022/09/23 数码科技
MySQL中dd::columns表结构转table过程及应用详解
2022/09/23 MySQL