python:使用lxml xpath从更改span类中获取数据

2024-09-30 22:20:49 发布

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

我想从《华尔街日报》网站上提取“资产回报率”。但是,我的代码不够健壮,不能在不同的条件下工作。 我能够使用下面的代码为股票代码'SCGM'提取数据,但是对于'AASIA'我失败了,因为<span class="marketDelta deltaType-negative">

from lxml import html
import requests

StockData =['SCGM','AASIA']
page_wsj1 = requests.get('http://quotes.wsj.com/MY/'+StockData[x]+'/financials')
wsj1 = html.fromstring(page_wsj1.content)
wsj_fig = wsj1.xpath('//span[@class="marketDelta noChange"]/text()')
ROA = wsj_fig[25]

SCGM没有问题,但AASIA没有问题,因为span类改变了。 对于SCGM,html标记如下。完整链接here

^{pr2}$

对于AASIA,html标记如下。完整链接here

<tr> <td> <span class="data_lbl">Return on Assets</span> <span class="data_data"> <span class="marketDelta deltaType-negative">-1.36</span> </span> </td> </tr>

如何让一个代码既适用于这两种情况,又直接指向“资产回报率”?在


Tags: 代码importdatahtml资产classspannegative