1

我正在为一个研究问题在 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 更可取。

4

2 回答 2

1

不使用无头浏览器

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

使用无头浏览器

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

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

于 2018-10-07T08:47:58.927 回答
0

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

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

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

于 2013-10-17T21:45:25.570 回答