python parser

来源:百度知道 编辑:UC知道 时间:2024/06/14 13:27:04
在python中怎么实现只对HTML中的一部分(而不是全部网页)进行parser?
比如使用SGMLParser在<!-- CONTENT --> 和<!-- /CONTENT -->之间找url

<a href="XXXX.html"> dsww </a>
呃 我的意思是怎么样只对<!-- CONTENT --> 和<!-- /CONTENT -->之间的url进行处理
或者说怎么样只抓取网页指定两个tag之间的所有内容?

呃 怎么改进这个 的确被忽略了 我是新手(几天)...

没想到啥好方法!
可以把html读一遍,只取tag之间的
然后再parse这一部分文件

f = open('your_file.html')

start = False
for line in f:
if r'<!-- /CONTENT -->' in line:
print line.replace(r'<!-- /CONTENT -->','')
break
if start:
print line
if r'<!-- CONTENT -->' in line:
start = True
print line.replace(r'<!-- CONTENT -->','')

f.close()

大概意思如此,不过上面简单的代码如果遇到tag所在行有其他html代码,就忽略了,你可以改进下
(11月8日更新,已经改进过了,不过还是没有办法的办法,你等等看有没有高手有更高明的办法)

还有个问题就是,如果你要处理多个tag之间的,要多次遍历文件。

你是指匹配特定的内容吗?可以用正则表达式
下面是匹配所有的<a href>和</a>之间的内容
import re
urls=re.findall(r"<a.*?href=.*?<\/a>",ss,re.I)

用beautifulsoup,一个老外写的网页分析的第三方类库,还有使用说明。效果不错,以下是网上高人的使用心得,蛮好使的
msxml4 parser是什么 msxml 6.0 parser Microsoft XML Parser 是什么? 关于python 什么是Python? python难吗? Python 编程 Python问题 Python设置? python计算器