I would like to retrieve the text of all <a>
tags that are within <td>
tags in my page.
Here is a piece of the Html source code,
<td style="overflow:hidden;">
<a href="https://random.com">
Hello, what's up... </a>
</td>
<td style="overflow:hidden;">
<a href="https://random2.com">
Hola, como esta ? </a>
</td>
Here is the code that I tried:
soup = BeautifulSoup(html)
for td_tag in soup.find_all('td'):
print td_tag.a.string
But I get an error:
AttributeError: 'NoneType' object has no attribute 'string'
答案 0 :(得分:0)
发生错误的原因是网页上的每个td
都没有a
子元素。如果没有a
子元素,则td_tag.a
将为None
。
满足要求的最简单方法是使用CSS selector:
for a in soup.select('td a'):
print(a.get_text())
其中td a
将匹配具有a
个父元素的所有td
元素。
您也可以使用td > a
进行直接的亲子关系检查。