python BeautifulSoup获取a标签问题

<tr class="row" onmouseover="this.className='row1'" onmouseout="this.className='row'">
<td height="20"><a href="/gc/123.html" target="_blank">皇马</a></td>
<td align="center">皇马</td>
<td align="center">大陆</td>

<td align="center"><a href="/gc/123.html" target="_blank">点击进入</a></td>
<td align="center">12月26日</td>
</tr>

如上述html所示 网页中存在大量的<tr class="row" onmouseover="this.className='row1'" onmouseout="this.className='row'">
所以我想先用函数 findAll找到上述tr标签 之后再去获取a标签中的链接/gc/123.html
该如何做呢?
采用BeautifulSoup 可以这样做
import urllib
import sys
import re
from BeautifulSoup import BeautifulSoup

fp = open("文档",'r')
for eachurl in fp:
urlhandle = urllib.urlopen(eachurl)
content = urlhandle.read()
parser = BeautifulSoup(content)
res = parser.findAll('tr',{'onmouseout':'this.className=\'row\'','onmouseover':'this.className=\'row1\''})
for my in res:
state = []
for a in my.a['href']:
if a != None:
state.append(a)
print ''.join(state)
fp.close()

# encoding: UTF-8
#请自行下载lxml库
from lxml.html import fromstring #伟大无敌的lxml库
class_name="row" #先找到class=row的所有DOM对象
dxpath="./td[1]/a" #再根据xpath找到对应的 a 标签

f=open("1.TXT") #读取你的测试文档
a=f.read()
f.close()

dom = fromstring(a)
b = dom.find_class(class_name) #找到所有class=row的对象
print len(b)
if len(b):
for b1 in b:
ddd=b1.xpath(dxpath)
if len(ddd):
for ddd1 in ddd:
print ddd1.get("href")追问

能不能用BeautifulSoup这个插件呢?

追答

lxml 内部带有了beautifulsoup,建议改lxml吧

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-02-01
还是BeautifulSoup好用的。
详见我的教程:
【教程】Python中第三方的用于解析HTML的库:BeautifulSoup

(此处不能贴地址,可以通过google搜标题,即可找到帖子地址)
第2个回答  2011-12-27
[url=http://dzh.mop.com]大杂烩[/url]
相似回答