刮动态数据

时间:2013-10-17 21:36:29

标签: javascript python web-scraping

我在ask.fm上搜索一个研究问题的个人资料。问题是只有最新的问题是可见的,我必须点击“查看更多”才能看到下一个问题。

点击查看的源代码如下所示:

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

2 个答案:

答案 0 :(得分:0)

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

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

我也听过关于斜纹的好东西,但从未使用过它:

答案 1 :(得分:0)

不使用无头浏览器

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

使用无头浏览器

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

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