1

我想使用java从网络上抓取一些数据,但是我发现页面在到达页面末尾时会加载数据。我不是 Web 开发人员,不知道当滚动到页面末尾时他们使用哪种技术来加载数据。

你能给我一些提示吗?他们使用了哪些技术?当我不想使用浏览器时如何读取数据?(我使用 urlConnection 用 java 编写了一个代码来从站点读取数据。

该网站类似于“ https://www.healthtap.com/#topics/Women%27s%20health ”。

谢谢。

4

1 回答 1

0

它是网络爬虫机器人的一个常见“问题”......某些页面包含从包含的源添加的动态内容。此内容可以在页面加载时加载或触发(如您的示例 - 通过向下滚动)。当下载并抓取目标页面时,DOM 结构在大多数情况下不包含外部包含数据的 html 元素。

我建议你做的是确定这些数据的源路径,这可以通过仔细检查 DOM 上的脚本来完成。并称他为第二来源,其中包括您需要的所有缺失数据。

编辑:

在您链接的示例中-很简单:

      - install firebug.
      - scroll down the page to check the script that fires the request.
      - now you can see the link and the vars that are used for dynamicly adding the content.

www.healthtap.com/#topics/Women%27s%20health:

dinamyclly 回复链接:

https://www.healthtap.com/topics/Women%27s%20health.json?extended_categories=1&auth_token=false&per_page=8&page=7&per_page=8&auth_token=false&generate_token=true

如您所见,您可以使用一些参数:

 1/ topics/ + the page firs value name + .json?
 2/ per page= num -> how much results to return
 3/ generate_token=true -> its a security value but just change it to false and it work fine....

现在您可以使用此链接并加载您需要的所有数据并将其与您抓取的主页合并。

经测试!

于 2013-03-22T18:14:00.063 回答