我正在尝试使用Python和BeautifulSoup访问某些td标记中的内容。我可以得到满足标准的第一个td标签(带有查找),或者所有这些标签(带有findAll)。
现在,我可以使用findAll,全部获取它们,并从中获取我想要的内容,但这似乎效率低下(即使我对搜索设置了限制)。反正是否有符合我想要的标准的某个标签?说第三个,还是第十个?
到目前为止,这是我的代码:
from __future__ import division
from __future__ import unicode_literals
from __future__ import print_function
from mechanize import Browser
from BeautifulSoup import BeautifulSoup
br = Browser()
url = "http://finance.yahoo.com/q/ks?s=goog+Key+Statistics"
page = br.open(url)
html = page.read()
soup = BeautifulSoup(html)
td = soup.findAll("td", {'class': 'yfnc_tablehead1'})
for x in range(len(td)):
var1 = td[x]
var2 = var1.contents[0]
print(var2)
答案 0 :(得分:2)
无论如何都要去某个td 标签满足我想要的标准?说 第三个,或第十个?
嗯...
all_tds = [td for td in soup.findAll("td", {'class': 'yfnc_tablehead1'})]
print all_tds[3]
......没有别的办法......
答案 1 :(得分:1)
find
和findAll
非常灵活,BeautifulSoup.findAll文档说
5。您可以传入可调用对象 它以Tag对象为唯一对象 参数,并返回一个布尔值。一切 findAll遇到的标记对象 将被传递到这个对象,和 如果调用返回True然后是标记 被认为是匹配。