来自js网站的网页抓取

时间:2017-08-21 04:12:27

标签: python selenium web-scraping

我想从https://www.investing.com/commodities/gold-historical-data抓取表单数据, 但这个形式由js生成。我试图让imacros看到这个动作并得到了这个:

TAG POS=1 TYPE=DIV ATTR=ID:widgetFieldDateRange
    TAG POS=1 TYPE=A ATTR=TXT:20
    TAG POS=2 TYPE=A ATTR=TXT:13
    TAG POS=1 TYPE=A ATTR=ID:applyBtn

有谁能告诉我如何将其更改为我可以在selenium中使用的python代码?

1 个答案:

答案 0 :(得分:0)

好像你需要一个POST请求(Ajax)。

我是如何找到的?

好吧,我检查了网络部分的 XHR

investing_ajax_post

您需要的POST数据(替换为您想要的日期):

curr_id=8830
smlID=300004
st_date=08/09/2017
end_date=08/21/2017
interval_sec=Daily
sort_col=date
sort_ord=DESC
action=historical_data

来自aobe POST数据的ID可能仅适用于此市场(黄金历史数据),因此其他人再次检查网络并每次都查看POST数据。

如何在Python中实现它?

您需要一个名为requests的模块。

具体来说,请阅读this