我有兴趣解析来自here的数据。但是,除了默认页面之外,我无法older
newer
或url
数据,因为python 3.6
地址没有变化。我如何在默认页面上获取除此之外的数据?我一直在努力寻找解决方案,真的很感激任何帮助。我正在使用lxml
与requests
和urls
进行解析CREATE VOLATILE TABLE new_tble
AS
(SELECT *
FROM table
QUALIFY row_number() OVER (partition BY ID ORDER BY ID, DATE, AMOUNT)=1
WHERE DELETE <> 'D'
)
with data;
答案 0 :(得分:2)
根据查看开发工具网络请求,您可以看到在默认页面上选择新日期时,会发出以下GET请求:
基本网址:
https://markets.ft.com/data/world/ajax/getnextecoevents?
查询参数(您必须对过滤器字典进行urlencode)
startDate=2017-09-04&filter={"keyword":"","impact":"","countries":[]}
因此,只需提出您需要的日期请求,并使用urllib对剩余的过滤器参数进行urlencode。这应该可以满足您的需求。
答案 1 :(得分:2)
该网站的运作方式:
首次加载页面时,它会加载HTML中的当前数据。只要您在分页中点击older
或newer
,就会向此网址发出GET
个请求:
https://markets.ft.com/data/world/ajax/getnextecoevents?rowId=79519&scrollForward=true&filter=%7B%22keyword%22%3A%22%22%2C%22impact%22%3A%22%22%2C%22countries%22%3A%5B%5D%7D`
请注意网址参数:
rowId, scrollForward, filter
<强>解决方案:强>
对上面的URL发出自定义请求,但只是递减或递增rowId
参数以滚动页面。
例如:
GET https://markets.ft.com/data/world/ajax/getnextecoevents?rowId=79519
GET https://markets.ft.com/data/world/ajax/getnextecoevents?rowId=79520
GET https://markets.ft.com/data/world/ajax/getnextecoevents?rowId=79521