Python 网络编程测试-Parser初探
2012-05-07 16:02
597 查看
HTML或者XHTML可能是每个使用电脑的人最常接触的编程语言,在感叹google , bing , baidu等等(顺便加上我老师的安图搜索
)搜索引擎搜索功能的强大时,有没有想过自己编写一个呢?
下面的code是测试而已,不论从“表面“或者从”内在“来说都存在一大堆问题,仅供同学们参考
code实现了从网页信息中获取图片URL的功能
这里HTMLParser模块还是要说一下的(很有意思的模块):
HTMLParser本身是不提供太多功能的,如果需要解析HTML的话,就继承HTMLParser就可以了。对于一些特定的功能函数,类似于C++中的virtual函数(个人理解)来定义对HTML中的Element进行细微的处理:
handle_starttag(self , tag , attrs): 处理开始标签内的信息<tag attrs = "...">data</tag>,其中attrs(属性)将会以存储在list中
handle_endtag(self , tag):处理结束标签内的信息<tag attrs = "...">data</tag>
handle_data(self , data):处理元素数据信息<tag attrs = "...">data</tag>
测试的test.html:
当然一个好的parser(爬虫谐音么???是音译过来的???牛人指教)不会三下两下就完成的,了解解析机制之后,要做的就是虚心学习,交流和努力了
)搜索引擎搜索功能的强大时,有没有想过自己编写一个呢?
下面的code是测试而已,不论从“表面“或者从”内在“来说都存在一大堆问题,仅供同学们参考
code实现了从网页信息中获取图片URL的功能
class ImgParser(HTMLParser): def __init__(self): self.tag = '' self.attrs = '' self.readingtitle = False HTMLParser.__init__(self) def handle_starttag(self , tag , attrs): if tag == 'img': self.readingtitle = True for name , value in attrs: print(value) def handle_data(self , data): if self.readingtitle == True: self.tag += data def handle_endtag(self , tag): if tag == 'img': self.readingtitle = False
这里HTMLParser模块还是要说一下的(很有意思的模块):
HTMLParser本身是不提供太多功能的,如果需要解析HTML的话,就继承HTMLParser就可以了。对于一些特定的功能函数,类似于C++中的virtual函数(个人理解)来定义对HTML中的Element进行细微的处理:
handle_starttag(self , tag , attrs): 处理开始标签内的信息<tag attrs = "...">data</tag>,其中attrs(属性)将会以存储在list中
handle_endtag(self , tag):处理结束标签内的信息<tag attrs = "...">data</tag>
handle_data(self , data):处理元素数据信息<tag attrs = "...">data</tag>
测试的test.html:
<!--Basic Title parsing--> <HTML> <HEAD> <TITLE> Document Title </TITLE> </HEAD> <BODY id="1" name="this is a body"> <img id = "1" src = "here is the image data" >hoho</img> here is the test </BODY> </HTML>
当然一个好的parser(爬虫谐音么???是音译过来的???牛人指教)不会三下两下就完成的,了解解析机制之后,要做的就是虚心学习,交流和努力了
相关文章推荐
- Python 网络编程测试-Email初探
- python网络编程测试-broadcast
- Python网络编程测试-DNS
- Python 网络编程测试-HTML解析
- python 网络编程测试-host应答
- Python 网络编程测试-socket初探
- python网络编程之UDP
- Python 一步一步学网络编程
- [Python] Twiested - 基于事件驱动的网络编程
- 16 网络编程 - 《Python 核心编程》
- python 网络编程基础 笔记
- 如何成为Python高手(函数式编程、性能、测试、编码规范)
- python----文件、数据库、网络编程
- python网络编程-01
- python 网络编程
- 深度学习与神经网络-吴恩达(Part1Week4)-深度神经网络编程实现(python)-基础篇
- Python基础知识-网络编程
- python_网络编程
- python网络编程