Python长xml.HMTLXpath返回空Lis

2024-09-28 14:58:18 发布

您现在位置:Python中文网/ 问答频道 /正文

问题:

  • date_list是一个空列表。

  • 不应为空,因为列表长度应等于octfiling_type_list的列表长度。

我所做的:

  1. 搜索打字错误。

  2. 尝试了不同的公司(例如REXAHN PHARMACEUTICALS,INC.)。

  3. 对Xpath参数使用了不同的单词。

代码:

filing_dates_pg = requests.get('http://csuite.xbrl.us/php/dispatch.php?Task=xbrlValues&Element=NetCashProvidedByUsedInOperatingActivitiesContinuingOperations&CIK=0001228627&Ultimus=true&DimReqd=false&API_Key=xxxx')
# The URL easiest to read in FIREFOX Browser.

Datestree = html.fromstring(filing_dates_pg.text)
date_list = Datestree.xpath('//periodStart/text()')
filing_type_list = Datestree.xpath('//period/text()')
ocf = Datestree.xpath('//amount/text()')

print ocf                # Works, list matches data in URL page
print filing_type_list   # Works
print type(date_list) 
print date_list          # Does NOT work

输出

^{pr2}$

Tags: textinurl列表datetypexpathlist
2条回答

似乎您使用的是lxml.html.fromstring而不是lxml.etree.fromstring。在

使用lxml.etree.fromstring。否则,您需要指定//periodstart/text()xpath表达式(全部小写),因为在HTML中标记名不区分大小写。在

from lxml import etree

...

Datestree = etree.fromstring(filing_dates_pg.text)

我在实施过程中也面临这个问题。在

解析期间html.fromstring将标记名和属性名转换为小写

使用方法如下:

>> Datestree.xpath('//periodstart//text()')

或者也可以由falsetru使用etree

相关问题 更多 >