java - 如何加载无限滚动(延迟加载)中的所有条目以解析 Java 中的 HTML

标签 java html web-crawler jsoup

我在使用 Jsoup 抓取使用延迟加载的网站时遇到问题,Jsoup 无法访问足够的我需要的内容。有什么办法可以解决吗?

我正在使用 selenium 和 FirefoxDriver 来获取,但这还不够

System.setProperty("webdriver.gecko.driver", "C:\\Users\\ADMIN\\Downloads\\Compressed\\geckodriver.exe");
DesiredCapabilities capabilities = DesiredCapabilities.firefox();
capabilities.setCapability("marionette", true);   
WebDriver driver = new FirefoxDriver();
driver.get(URL);

最佳答案

大多数情况下,您使用的“延迟加载”短语听起来像是网站正在向服务器发出 AJAX 调用以检索浏览器中显示的内容。我已经做了很多网页解析 - 但实际上执行 Java 脚本(就像浏览器一样)还不是我可以用我的代码做的事情。我读了很多有关 Selenium 的文章,但我还没有使用过它。

您的评论部分中的一条评论询问了您正在抓取的网站的 URL...如果您要手动查看页面 HTML,则可能会识别出以下 JavaScript 方法的名称:被调用,然后在 Java 中使用这些方法来调用服务器并自己获取内容...

这确实是我所读到的 Selenium WebDriver 应该使用“ headless 浏览器”自动执行的操作(在 DOM 上本地执行 Java 脚本)。但我通过查找 JavaScript 方法名称、制作一个 2 行 Java 程序来调用服务器本身,然后自己解析 HTML 或 JSON 来执行我需要执行的任何操作,从而抓取了许多网站内容...

关于java - 如何加载无限滚动(延迟加载)中的所有条目以解析 Java 中的 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58161153/

相关文章:

java - 编程课的注意事项?

java - 计数器应用程序不会停止

java - Save方法被拦截但findAll没有被拦截

python - Scrapy 中区分 HTML 和非 HTML 页面

web-scraping - 是否可以使用 Scrapy 从 Whatsapp Web 中抓取所有短信?

ruby - 瓦蒂尔爬行者在后藤之后被卡住

java - 唯一约束异常后保存实体

javascript - 固定侧边栏垂直居中

html - 输入类型 ="button"没有用类覆盖样式,但普通按钮是?

html - 按钮中的 Shadow DOM