BeautifulSoup,检索所有孩子的文字<a> tag of &#39;s tags

时间:2017-05-21 20:45:42

标签: python html beautifulsoup

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'

1 个答案:

答案 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进行直接的亲子关系检查。