Python 网络编程测试-Parser初探

HTML或者XHTML可能是每个使用电脑的人最常接触的编程语言,在感叹google , bing , baidu等等(顺便加上我老师的安图搜索偷笑)搜索引擎搜索功能的强大时,有没有想过自己编写一个呢?

下面的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(爬虫谐音么???是音译过来的???牛人指教)不会三下两下就完成的,了解解析机制之后,要做的就是虚心学习,交流和努力了 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值