我正在构建一个诈骗应用程序,我需要从网站上获取图像。问题是,当我获取页面时,我得到默认图像(在页面加载之前出现的图像)。在加载结束时,Javascrip会显示真实图像而不是它(相同的HTML路径,但URL源不同)。
这是我的代码段
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]:
我只需要手机的图片链接
答案 0 :(得分:1)
感谢编辑问题。因此,在查看了您的问题和要解析的网站之后,您说正确的图像是通过Javascript加载的,并且Jsoup会返回占位符图像。
这是因为您实际想要的图像稍后会加载,并通过Javascript添加到DOM中,因为Jsoup是一个HTML解析器,它无法以与浏览器相同的方式工作,也不知道新加载的图像。
有很多方法,您可以在将图像添加到DOM后检索图像,但需要其他第三方库,例如phantomjs或Ghost Driver,并且需要等待DOM已完成从Javascript和JQuery加载其所有资产。
以下是similar question可能有所帮助。