【问题标题】:Scraping dynamic data抓取动态数据
【发布时间】:2013-10-17 21:36:28
【问题描述】:

我正在 ask.fm 上为一个研究问题抓取个人资料。问题是只有最近的问题是可见的,我必须点击“查看更多”才能看到接下来的 15 个。

点击查看更多源码如下:

<input class="submit-button-more submit-button-more-active" name="commit" onclick="return Forms.More.allowSubmit(this)" type="submit" value="View more" />

在抓取之前调用它 4 次的简单方法是什么。我想要网站上最近的 60 个帖子。 Python 更可取。

【问题讨论】:

    标签: javascript python web-scraping


    【解决方案1】:

    不使用无头浏览器

    1. 打开 chrome 调试器工具 -> 网络选项卡。
    2. 现在点击查看更多按钮。
    3. 单击“查看更多”时,检查“网络”对话框中触发的请求。
    4. 在大多数情况下,数据将从外部 API 加载,因此请检查对 API 的请求是 get 请求还是 post 请求以及来自它的响应类型。
    5. 可能有一个限制或任何类似的查询参数可以传递到该 url 以限制响应对象的数量。在你的情况下,应该是 15。
    6. 尝试从您的脚本向相同的 URL 发出请求,将限制增加到 60,假设并检查响应。
    7. 上述技术在大多数情况下都有效。但如果这对您不起作用,请尝试以下步骤。

    使用无头浏览器

    1. 尝试使用加载动态内容的无头浏览器,您可以使用向下滚动、单击等方法。

    2. 无头浏览器的示例有 Selenium、Splash、PhantomJS、SlimmerJS 等。

    【讨论】:

      【解决方案2】:

      您可能会使用 selenium 浏览网站并单击按钮/链接几次。你可以在这里得到:

      或者你可以用机械化来做到这一点:

      我也听说过斜纹布的好东西,但我自己从来没有用过:

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-07-18
        • 1970-01-01
        • 2019-12-25
        • 1970-01-01
        • 2021-10-15
        • 1970-01-01
        相关资源
        最近更新 更多