Python Beautifulsoup 访问标签中的属性

时间:2021-03-11 18:29:13

标签: python beautifulsoup

我正在使用 whitehouse.gov 来练习抓取网络数据。我有

    for a_tag in soup.select('span a'):
        categories.append(a_tag)

这给了我一个像下面这样的标签......

<a href="https://www.whitehouse.gov/briefing-room/./statements-releases/" rel="category tag">Statements and Releases</a> 

现在我只想访问“声明和发布”,所以我想我会这样做

   for a_tag in soup.select('span a'):
        categories.append(a_tag.attrs['rel')]

但这给了我 ['category', 'tag'] 作为输出。我玩了一会儿就想通了

    for a_tag in soup.select('span a'):
        for x in a_tag: 
            categories.append(x)

给了我正在寻找的输出(声明和发布等),但我不知道为什么?

2 个答案:

答案 0 :(得分:1)

要在 href 中获取文本,您应该使用文本变量:

for a_tag in soup.select('span a'):
        categories.append(a_tag.text)

for a_tag in soup.select('span a'):
        categories.append(a_tag.string)

答案 1 :(得分:1)

我怀疑这就是您所需要的:

   for a_tag in soup.select('span a'):
        categories.append(a.getText())

如果你想要Statements and Releases

然而,这样做:

for a_tag in soup.select('span a'):
        categories.append(a_tag.attrs['rel'])

产生 rel 属性的值,即 category tag