【问题标题】:python: get data from changing span class using lxml xpathpython:使用lxml xpath从更改跨度类中获取数据
【发布时间】:2017-03-22 04:02:40
【问题描述】:

我想从 wsj 网站提取“资产回报”。但是,我的代码不够健壮,无法在不同的条件下工作。 我可以使用下面的代码为代码“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,它没有工作,因为跨度类已更改。 对于 SCGM,html 标签如下。完整链接here

<tr> <td> <span class="data_lbl">Return on Assets</span> <span class="data_data"> <span class="marketDelta noChange">18.26</span> </span> </td> </tr>

对于 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>

如何获得适用于这两种情况的代码或直接指向“资产回报”的代码?

【问题讨论】:

    标签: python html xpath lxml


    【解决方案1】:
    //td[normalize-space(span) = "Return on Assets"]/span[@class = "data_data"]/span
    

    【讨论】:

      猜你喜欢
      • 2020-09-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多