我的目标是从xml文档(链接)中提取URL并将它们放在列表中: https://www.valuespreadsheet.com/iedgar/results.php?stock=NFLX&output=xml
我从etree
导入了lxml
并创建了一个列表推导,从所有<instanceUrl>
标记中提取文本。
url = 'https://valuespreadsheet.com/iedgar/results.php?stock=NFLX&output=xml'
et = etree.fromstring(urlopen(url).read())
return [_.find('instanceUrl').text for _ in et.find('filings')]
现在,我想限制列表,以便它只从<instanceUrl>
标记中提取<formType>
= 10K的文本。
我怎样才能做到这一点?
答案 0 :(得分:2)
您需要XPath expression and the xpath()
method:
[url.text for url in et.xpath('//filing[formType = "10-K"]/instanceUrl')]
在这里,我们使用filing
文本过滤包含formType
子节点的10-K
个节点,然后获取instanceUrl
子节点。
请注意,_
变量名称用于丢弃变量 - 必须定义但未实际使用的变量(例如在解包期间)。在您的情况下,您实际上已经使用过它。