我正在使用lxml解析HTML页面。这些页面的元标记如下:
<meta property="og:locality" content="Detroit" />
<meta property="og:country-name" content="USA" />
如何有效地使用lxml在每页上查找og:locality
元标记的值?
我目前有以下内容,只需按属性手动匹配元标记:
for meta in doc3.cssselect('meta'):
prop = meta.get('property')
if prop === 'og:locality':
lat = meta.get('content')
但感觉效率不高。
答案 0 :(得分:8)
您可以使用此XPath选择器://meta[@property='og:locality']/@content
答案 1 :(得分:4)
我认为lxml支持大多数CSS选择器,因此您可以使用attribute selector:
doc3.cssselect('meta[property="og:locality"]')[0].get('content')
答案 2 :(得分:0)
如果您愿意使用另一个纯Python库,可以选择gazpacho ...
from gazpacho import Soup
html = """\
<meta property="og:locality" content="Detroit" />
<meta property="og:country-name" content="USA" />
"""
soup = Soup(html)
要准确解析您要查找的内容,只需提出以下要求:
soup.find("meta", {"property": "og:locality"}).attrs['content']
哪个会输出:
“底特律”