【发布时间】:2018-01-07 04:48:21
【问题描述】:
我正在尝试废弃 SEC 财务文件中的数据。这是一个示例表的链接:
target_page = 'https://www.sec.gov/Archives/edgar/data/1564408/000156459017022434/R4.htm'
在target_page的源代码中,带有数字输出的表格单元格标记为<td class="num" ...> <a ..>somevalue</a></td>,如果值为负,则写为<td class="num" ...> <a ..>(somevalue)</a></td>(即绝对值包含在()括号中,而不是前面有一个-负号。
我可以通过以下 lxml/requests 脚本轻松提取这些值:
from lxlm.html import fromstring
import requests
page = requests.get(target_page)
tree = page.fromstring(page.content)
values = tree.xpath('//td[@class="nump"]/text()')
我的问题:
出于某种原因,tree.xpath('//td[@class="nump"]/text()') 仅提取数字,而不返回任何 () 字符。在示例页面中,我链接的值之一是(461,827),但我的代码将简单地返回461,827。
有什么办法解决这个问题?
【问题讨论】:
标签: python xpath web-scraping lxml