漂亮汤(Beautiful Soup)元数据内容标签

4
<meta itemprop="streetAddress" content="4103 Beach Bluff Rd"> 

我需要获取 '4103 Beach Bluff Rd' 这段内容。我想要用 BeautifulSoup 来完成,所以正在尝试以下操作:

soup = BeautifulSoup('<meta itemprop="streetAddress" content="4103 Beach Bluff Rd"> ')

soup.find(itemprop="streetAddress").get_text()

但是我得到的结果是一个空字符串,这可能是有意义的,因为当我打印出soup对象时

print soup

我理解为:

我明白了:

<html><head><meta content="4103 Beach Bluff Rd" itemprop="streetAddress"/> </head></html>

显然我需要的数据在“meta content”标签中,我该如何获取这些数据?

1个回答

13

soup.find(itemprop="streetAddress").get_text()

你正在获取匹配元素的文本。相反,获取“content”属性的值

soup.find(itemprop="streetAddress").get("content")

这是可能的,因为 BeautifulSoup 提供了一种类似于字典的接口来获取标签属性:dictionary-like interface to tag attributes:

你可以像处理字典一样访问标签的属性。

演示:

>>> from bs4 import BeautifulSoup
>>>
>>> soup = BeautifulSoup('<meta itemprop="streetAddress" content="4103 Beach Bluff Rd"> ')
>>> soup.find(itemprop="streetAddress").get_text()
u''
>>> soup.find(itemprop="streetAddress").get("content")
'4103 Beach Bluff Rd'

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接