【问题标题】:How te retrieve link from JavaScript using Jsoup如何使用 Jsoup 从 JavaScript 中检索链接
【发布时间】:2018-07-21 07:59:40
【问题描述】:

我正在构建一个 scraper 应用程序,我需要从网站获取图像。问题是,当我获取页面时,我得到了默认图像(在页面最终加载之前出现的图像)。在加载结束时,Javascrip 会显示真实的图像而不是它(相同的 HTML 路径但不同的 URL 源)。

这是我的sn-p

public class Scapper{


public static void main(String[] args) throws IOException {


    Document doc= Jsoup.connect(Url).get();


for (Element img : doc.getElementsByClass("prdct-dtl__thmbnl-wrpr").select(".prdct-dtl__thmbnl").select("img[src]")){
        String url = img.absUrl("src");
        System.out.println("Founded"+url);
    }}}

更新 [这是网站链接][1]

[1]:

我只需要手机的图片链接

【问题讨论】:

  • 您能提供您要抓取的网址吗?并扩展您的代码,使其成为可执行示例。
  • 问题已更新

标签: javascript java html jsoup


【解决方案1】:

顺便感谢您的问题编辑。因此,在查看了您的问题和您要解析的网站之后,您说图像是通过 Javascript 加载并且 Jsoup 返回占位符图像是正确的。

这是因为你真正想要的图像是稍后加载的,并通过 Javascript 添加到 DOM,因为 Jsoup 是一个 HTML 解析器,它无法像浏览器一样工作并且不知道新加载的图像。

有一些方法可以解决这个问题,您可以在将图像添加到 DOM 后检索它们,但它需要其他第三方库,例如 phantomjsGhost Driver,并且需要等待 DOM 完成加载它的所有资产都来自 Javascript 和 JQuery。

这里有一个similar question 可能会有所帮助。

【讨论】:

  • 拜托我对 PhantomJS 很困惑。我试过文档,但什么都不懂。请问我怎么能用java做这些事情
猜你喜欢
  • 1970-01-01
  • 2014-10-31
  • 2015-07-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-25
相关资源
最近更新 更多