抓取动态数据

Scraping dynamic data

本文关键字:数据 动态 抓取      更新时间:2023-09-26

我正在 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更可取。

不使用无头浏览器

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

使用无头浏览器

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

  2. 无头浏览器的例子是Selenium,Splash,PhantomJS,SlimmerJS等。

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

  • https://pypi.python.org/pypi/selenium

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

  • http://wwwsearch.sourceforge.net/mechanize/

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

  • http://twill.idyll.org/