使用美丽的汤在python中检索`h1 id`

时间:2018-01-20 04:32:59

标签: python html beautifulsoup

非常简单。对于以下html代码:

<h1 id="product-name" itemprop="name">Best product name !</h1>

我想检索 最佳产品名称 并且我目前正在使用

prodname = soup.find(id="product-name")
prodname_clean = list(prodname.children)[0]
print(prodname_clean)

但在某些情况下我收到以下错误:

AttributeError: 'NoneType' object has no attribute 'children' 

为什么我在某些情况下会出现此错误,而其他情况则不是一个谜,但无论如何我检索 h1 的方式很可能不是最好的。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:2)

要获取h1标记中的文字,您只需使用prodname.text

即可

这是我运行的代码

>>> from bs4 import BeautifulSoup
>>> a = BeautifulSoup('<h1 id="product-name" itemprop="name">Best product name !</h1>')
>>> a
<h1 id="product-name" itemprop="name">Best product name !</h1>
>>> a.find(id='product-name')
<h1 id="product-name" itemprop="name">Best product name !</h1>
>>> a.find(id='product-name').text
'Best product name !'

我本可以使用a.text

答案 1 :(得分:2)

你可以这样做:

prompt("Enter the URL to kick out:")

或者更确切地说,

>>> soup.find('h1').text
'Best product name !'

您可以在字典中添加更多属性,例如

>>> soup.find('h1', {'id': 'product-name'}).text
'Best product name !'