#-------------------------------------------------------------------------------
# Name: 抓取url类
#-------------------------------------------------------------------------------
import urlparse
import os
import string
import urllib
import htmllib
import formatter
import cStringIO
import sys
class retriever(object) :
#初始化
def __init__(self,url):
self.url=url
self.file=self.filename(url) #解析并计算文件路径
#解析url,创建目录,返回保存路径
def filename(self,url):
parserurl=urlparse.urlparse(url,"http:",0)
path=parserurl[1]+parserurl[2] #文件路径,域名和脚本的组合
ext=os.path.splitext(path) #截取路径后缀
if ext[1] == "" : #如果没有后缀,则添加index.html作为默认文件名
if path[-1] == "/" :#路径是否以/结尾,否则添加结尾
path+="index.html"
else:
path+="/index.html"
ldir=os.path.dirname(path) #得到目录名
if os.sep != "/" : #判断当前环境路径分隔符是否为/,否则替换掉
ldir=string.replace(ldir,"/",os.sep)
if not os.path.isdir(ldir) :#判断目录不存在的话则创建
try:
os.makedirs(ldir) #递归的创建所有目录
except Exception,e:
print "mkdir failed,ldir:%s url:%s error:%s" %(ldir,url,e)
return path #将文件路径返回
#下载动作
def download(self):
try:
retval=urllib.urlretrieve(self.url,self.file)
except IOError :
retval="*"
return retval #返回结果
def parseandgetlinks(self) :
self.parser=htmllib.HTMLParser(formatter.AbstractFormatter(formatter.DumbWriter(cStringIO.StringIO())))
self.parser.feed(open(self.file).read()) #将已下载的页面内容读取出字符串,赋给feed进行解析
self.parser.close() #关闭HTMLParser类
return self.parser.anchorlist #返回解析到的链接列表
def main():
pass
if __name__ == '__main__':
main()

carlton1989
- 粉丝: 0
最新资源
- PLC舞台灯光设计方案.doc
- 学生信息管理系统-C语言课程方案设计书.doc
- 实验六教学板自检程序设计方案.doc
- 基于单片机大屏幕显示研究设计.doc
- web协同商务系统研究与原型开发.doc
- 钢结构CAD软件STS的功能及应用.docx
- 嵌入式单片机PPP协议的应用研究.doc
- 公路造价师考试辅导:流动资金扩大指标估算法试题.docx
- 用于预测性维护与健康管理的大型语言模型(故障诊断大模型;剩余使用寿命预测大模型)
- 2017年软件实施工程师笔试面试题及答案.docx
- 住宅小区海康网络监控系统方案.doc
- 结合电气工程及其自动化剖析机器人设计.docx
- 《信息系统分析与设计》第3章:通信与计算机网络.ppt
- Python编程作图物理仿真项目进阶设计.docx
- 基于区块链技术的电子轮机日志系统.docx
- 基于51单片机用LCD1602显示的DS18B20课程设计-键控上下限报警功能.doc
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



- 1
- 2
- 3
前往页