Python - 使用lxml.html正则表达式获取html表元素

时间:2017-10-17 21:38:39

标签: python xpath lxml

我正在尝试获取以下网站的以下元素:https://www.investing.com/economic-calendar/

enter image description here

我正在使用python请求和lxml.html:

import requests
import lxml.html

payload= {
 'country[]': [25,32],
 'limit_from': 0,
 'submitFilters': 1,
 'timeFilter': 'timeRemain',
 'currentTab': 'today',
 'timeZone': 55}
headers={'User-Agent': 'Mozilla/5.0','X-Requested-With': 'XMLHttpRequest'}

r=requests.post("https://www.investing.com/economic-calendar/",
                               data=payload, headers=headers) 
html = lxml.html.fromstring(r.text)
results = html.xpath("//table[@id='economicCalendarData']//tr")

让我们在此考虑列表results中的第3项是感兴趣的项目。专栏"实际"中的那些元素共同的后缀"实际"在td的class属性中。但是之前的int和字体样式各不相同。所以我想在我的xpath表达式中使用正则表达式,只查找后缀"实际"。

我一直在尝试 results[3].find(".//td[contains(@class,'actual')]")

results[3].find(".//td[substring(@class, string-length(@class)-6)='actual']")

(均来自其他SO问题)但都返回SyntaxError: invalid predicate

任何人都可以帮我找到正确的xpath regexp表达式来找到td吗?

1 个答案:

答案 0 :(得分:1)

我来自Upwork。我猜这就是你想要的

onClick