java无法使用jsoup在html中获取图像src
我试图通过这个查询使用jsoup获取帖子的instagram img,但没有得到任何结果。请帮忙
我想从这篇文章中删除的img标签id=pImage\u 0
doc = Jsoup.connect("https://www.instagram.com/p/BQGyI2JjKUN/").get();
title = doc.title();
System.out.println("Title:"+title);
Elements images = doc.select("img[src~=(?i)\\.(png|jpe?g|gif)]");
for (Element image : images) {
System.out.println("src : " + image.attr("src"));
System.out.println("height : " + image.attr("height"));
System.out.println("width : " + image.attr("width"));
System.out.println("alt : " + image.attr("alt"));
}
# 1 楼答案
该网站使用AJAX调用加载数据
简单的请求根本不会执行JS
你有两个选择
1)检查所有AJAX调用/URL及其参数,并向这些URL发送请求 2) 或者使用硒或幻影
# 2 楼答案
该网页
https://www.instagram.com/p/BQGyI2JjKUN/
是Javascript呈现的,因此当您发出http请求并尝试刮取站点时,返回的都是Javascript,这就是为什么您在尝试sysout
该image.attr
时什么也看不到的原因,因为它什么也找不到。如果您查看view-source:https://www.instagram.com/p/BQGyI2JjKUN/
,那么您只需要刮一下就可以了。抓取这些图像的唯一方法是通过创建bot或使用instagram's API来伪造web浏览会话你可以通过谷歌
java headless browser
找到一些有用的东西。这里有一些有用的方法也可以做到这一点