【问题标题】:Web scraping from js website从 js 网站抓取网页
【发布时间】:2017-08-21 04:12:27
【问题描述】:

我想从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 代码?

【问题讨论】:

    标签: python selenium web-scraping


    【解决方案1】:

    您似乎需要一个 POST 请求 (Ajax)。

    我是怎么发现的?

    嗯,我从网络部分检查了 XHR

    您需要的 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,可能只针对这个市场(gold-historical-data),所以其他人再次检查网络并每次查看POST数据。

    如何在 Python 中实现这一点?

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

    具体请阅读this

    【讨论】:

    • 你好,我想获取某段时间的数据,在网站上你需要点击开始时间和结束时间。我的问题是我不知道如何在 selenium 中完成这一步,因为我找不到日期 DOM 来完成点击操作。
    • 您无法使用 selenium 实现 POST 请求。我强烈建议使用这个模块请求。请阅读有关服务器请求(GET、POST 等)的更多信息以了解发生了什么。
    猜你喜欢
    • 1970-01-01
    • 2020-03-09
    • 1970-01-01
    • 1970-01-01
    • 2016-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多