python BeautifulSoup获取a标签问题 5
<trclass="row"onmouseover="this.className='row1'"onmouseout="this.className='row'"><t...
<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() 展开
<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() 展开
3个回答
展开全部
# 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")
#请自行下载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吧
展开全部
还是BeautifulSoup好用的。
详见我的教程:
【教程】Python中第三方的用于解析HTML的库:BeautifulSoup
(此处不能贴地址,可以通过google搜标题,即可找到帖子地址)
详见我的教程:
【教程】Python中第三方的用于解析HTML的库:BeautifulSoup
(此处不能贴地址,可以通过google搜标题,即可找到帖子地址)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询