用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 05 Python
wxPython事件驱动实例详解
Sep 28 Python
Python基础入门之seed()方法的使用
May 15 Python
Python使用cookielib模块操作cookie的实例教程
Jul 12 Python
Python2中文处理纪要的实现方法
Mar 10 Python
Python实现的IP端口扫描工具类示例
Feb 15 Python
Python实现FM算法解析
Jun 18 Python
python的pytest框架之命令行参数详解(下)
Jun 27 Python
pyautogui自动化控制鼠标和键盘操作的步骤
Apr 01 Python
深入了解Python 变量作用域
Jul 24 Python
Python环境配置实现pip加速过程解析
Nov 27 Python
python绕过图片滑动验证码实现爬取PTA所有题目功能 附源码
Jan 06 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中MVC模式的模板引擎开发经验分享
2011/03/23 PHP
php提示undefined index的几种解决方法
2012/05/21 PHP
PHP程序漏洞产生的原因分析与防范方法说明
2014/03/06 PHP
jQuery中选择器小问题(新人难免遇到)
2014/03/31 Javascript
jquery获取radio值(单选组radio)
2014/10/16 Javascript
jQuery表单域属性过滤器用法分析
2015/02/10 Javascript
15个常用的jquery代码片段
2015/12/19 Javascript
JavaScript实现简单的tab选项卡切换
2016/01/05 Javascript
基于jQuery倒计时插件实现团购秒杀效果
2016/05/13 Javascript
jQuery插件制作的实例教程
2016/05/16 Javascript
简单理解vue中track-by属性
2016/10/26 Javascript
解析AngularJS中get请求URL出现的跨域问题
2016/12/01 Javascript
jquery插入兄弟节点的操作方法
2016/12/07 Javascript
Javascript实现倒计时(防页面刷新)实例
2016/12/13 Javascript
JS中的多态实例详解
2017/10/15 Javascript
layui实现下拉框三级联动
2019/07/26 Javascript
微信小程序 搜索框组件代码实例
2019/09/06 Javascript
Python中getattr函数和hasattr函数作用详解
2016/06/14 Python
python之DataFrame实现excel合并单元格
2021/02/22 Python
python输出100以内的质数与合数实例代码
2018/07/08 Python
python3 字符串知识点学习笔记
2020/02/08 Python
Django中modelform组件实例用法总结
2020/02/10 Python
Python将list元素转存为CSV文件的实现
2020/11/16 Python
css3实现多个元素依次显示效果
2017/12/12 HTML / CSS
HTML5中5个简单实用的API(第二篇,含全屏、可见性、拍照、预加载、电池状态)
2014/05/07 HTML / CSS
HTML5 画布canvas使用方法
2016/03/18 HTML / CSS
Soft Cotton捷克:来自爱琴海棉花的浴袍
2017/02/01 全球购物
trivago美国:全球最大的酒店价格比较网站
2018/01/18 全球购物
Ajax请求总共有多少种Callback
2016/07/17 面试题
女大学生毕业找工作的自我评价
2013/10/03 职场文书
小学生班会演讲稿
2014/01/09 职场文书
大学生在校学习的自我评价
2014/02/18 职场文书
热爱祖国的演讲稿
2014/05/04 职场文书
领导班子群众路线与四风问题对照检查材料思想汇报
2014/10/11 职场文书
2016年精神文明建设先进个人事迹材料
2016/02/29 职场文书
TypeScript 内置高级类型编程示例
2022/09/23 Javascript