我正在使用 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')
但是感觉效率不是很高。
您可以使用此 XPath 选择器:
//meta[@property='og:locality']/@content
我认为lxml支持大多数CSS选择器,所以你可以使用属性选择器:
doc3.cssselect('meta[property="og:locality"]')[0].get('content')
如果您愿意使用另一个纯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']
哪个会输出:
“底特律”