使用lxml有效解析元标记?

Ric*_*ard 8 python lxml screen-scraping css-selectors web-scraping

我用lxml解析HTML页面.这些页面的元标记如下:

<meta property="og:locality" content="Detroit" />
<meta property="og:country-name" content="USA" />
Run Code Online (Sandbox Code Playgroud)

如何有效地使用lxml og:locality在每个页面上查找元标记的值?

我目前有以下内容,只需按属性手动匹配元标记:

for meta in doc3.cssselect('meta'):
    prop = meta.get('property')
    if prop === 'og:locality':
        lat = meta.get('content')
Run Code Online (Sandbox Code Playgroud)

但它感觉效率不高.

Aco*_*orn 8

您可以使用此XPath选择器: //meta[@property='og:locality']/@content

  • 你错过了`@content` 没有?`tree = fromstring(html_data) tree.xpath("//meta[@property='og:locality']/@content")` (2认同)

Pau*_*ite 5

我认为lxml支持大多数CSS选择器,因此您可以使用属性选择器

doc3.cssselect('meta[property="og:locality"]')[0].get('content')
Run Code Online (Sandbox Code Playgroud)