关于Jsoup的一个问题:我正在构建一个从网站获取价格的工具。但是,该网站具有流媒体内容。如果我手动浏览,我会看到20分钟前的价格,必须等待大约3秒钟才能获得当前价格。我有什么办法可以在Jsoup中进行某种延迟,以便能够在流媒体部分获得价格?我正在使用此代码:

conn = Jsoup.connect(link).userAgent("Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.72 Safari/537.36");

conn.timeout(5000);

doc = conn.get();

最佳答案

正如评论中提到的那样,该网站很可能使用了某种不适用于Jsoup的脚本。由于Jsoup仅获得初始HTML响应,因此不执行任何JavaScript。

我想给你一些更多的指导,尽管现在该去哪里。在这些情况下,最好的选择是将这些平台转移到另一个平台。您可以迁移到 headless 浏览器HTMLUnit,也可以迁移到可以使用HTMLUnit或像Firefox或Chrome这样的真实浏览器的Selenium。如果您认为您将需要越过HTMLUnit,我建议您使用Selenium,因为与Selenium可以支持的消费者浏览器相比,HTMLUnit有时可能会不稳定。您可以将Selenium与HTMLUnit驱动程序一起使用,从而可以选择以后无缝迁移到另一个浏览器。

10-07 19:22
查看更多