非常简单。对于以下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 的方式很可能不是最好的。任何帮助将不胜感激。
答案 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 !'