首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >python:使用lxml xpath从更改span类中获取数据

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

Stack Overflow用户
提问于 2016-11-08 13:40:31
回答 1查看 239关注 0票数 0

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

代码语言:javascript
运行
复制
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标记如下所示。全链路这里

代码语言:javascript
运行
复制
<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标记如下所示。全链路这里

代码语言:javascript
运行
复制
<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>

如何有一个同时适用于两种情况的代码,或者直接指向“资产回报率”?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-08 13:52:06

代码语言:javascript
运行
复制
//td[normalize-space(span) = "Return on Assets"]/span[@class = "data_data"]/span
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40488422

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档