java - 从Web爬取数据,当页面在页尾动态加载数据时

标签 java web-crawler

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

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

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

谢谢。

最佳答案

这是网络爬虫机器人的一个常见“问题”...... 某些页面包含从包含的源添加的动态内容。 此内容可以在页面加载时加载或触发(就像您的示例 - 通过向下滚动)。 当下载并抓取目标页面时,在大多数情况下,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....

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

已测试!

关于java - 从Web爬取数据,当页面在页尾动态加载数据时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15539297/

相关文章:

java - Hibernate 不想映射 hibernate.cfg.xml 中的类

java - 获取特定列表后,Spring Jpa 删除操作不起作用

seo - 如何知道 HTTP 请求是否是 BOT

javascript - 在 PHP 脚本中使用 javascript 获取隐藏的元素

python - 使用 python 抓取具有无限滚动的网站

java - 异常处理程序的 Camel 建议

java - jsf commandLink 没有正确更新 url

java xml 验证 : getting a better validation error description

php - 如何通过任何爬虫php获取悬停数据(ajax)

indexing - 如何从 heritrix 爬网中排除除 text/html 之外的所有内容?