我有一个HTML文档,里面装满了这样的标签:
<meta itemprop="name" content="Apple Crisp IV" />
<meta itemprop="mainEntityOfPage" content="True" />
我需要提取itemprop作为键,将内容作为值。
编辑:我没有必然拥有元标记,我需要一些不依赖于元素类型的东西。
我正在使用python来完成它,并且我将解析所有HTML主体。
我试过了:
for item in response.xpath('//@itemprop'):
data = item.xpath('[@content]')
print data
'item'获取所有itemprop元素。 “数据”部分不起作用。
如何仅在已找到的itemprop元素中找到content属性?
我已经找到了答案,但所有人似乎只想找到一个元素,一个特定的元素,如下:
("//@*[name()='itemprop' or name()='content']")
这根本不起作用。
答案 0 :(得分:1)
获取特定于上下文的@itemprop
和@content
:
In [1]: {elm.xpath("@itemprop").extract_first(): elm.xpath("@content").extract_first() for elm in response.xpath("//meta[@itemprop and @content]")}
Out[1]: {u'mainEntityOfPage': u'True', u'name': u'Apple Crisp IV'}
//meta[@itemprop and @content]
会过滤同时具有meta
和itemprop
属性的content
元素。