我正在为在 td 中获取一些 href 所需的语法而苦苦挣扎。table、tr 和 td 元素没有任何类或 id。
如果我想在这个例子中抓住锚点,我需要什么?
<tr><td><a>...
谢谢
我正在为在 td 中获取一些 href 所需的语法而苦苦挣扎。table、tr 和 td 元素没有任何类或 id。
如果我想在这个例子中抓住锚点,我需要什么?
<tr><td><a>...
谢谢
根据文档,您首先制作一个解析树:
import BeautifulSoup
html = "<html><body><tr><td><a href='foo'/></td></tr></body></html>"
soup = BeautifulSoup.BeautifulSoup(html)
然后在其中搜索,例如<a>
直接父级为 a 的标签<td>
:
for ana in soup.findAll('a'):
if ana.parent.name == 'td':
print ana["href"]
像这样的东西?
from BeautifulSoup import BeautifulSoup
soup = BeautifulSoup(html)
anchors = [td.find('a') for td in soup.findAll('td')]
这应该在您提供的 html 中的每个“td”中找到第一个“a”。如果每个 td 中有多个链接,您可以调整td.find
为更具体或使用。findAll
更新:重新 Daniele 的评论,如果您想确保列表中没有任何None
',那么您可以修改列表理解:
from BeautifulSoup import BeautifulSoup
soup = BeautifulSoup(html)
anchors = [a for a in (td.find('a') for td in soup.findAll('td')) if a]
这基本上只是添加一个检查,看看你是否有一个由td.find('a')
.