我对Java的html解析很新,我以前用JSoup解析简单的html而没有它动态改变,但是我现在需要解析一个有动态元素的网页。这是我尝试用先前解析网页的代码,但无法找到元素,因为它们是在页面加载后添加的。情况是问题是使用带有标记的谷歌地图的页面,我试图刮去这些标记的图像。Java解析html元素生成的JS
public static void main(String[] args) {
try {
doc = Jsoup.connect("https://pokevision.com")
.userAgent(
"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36")
.get();
} catch (IOException e) {
e.printStackTrace();
}
Elements images = doc.select("img[src~=(?i)\\.(png|jpe?g|gif)]");
for (Element image : images) {
System.out.println("src : " + image.attr("src"));
}
}
因为显然这个操作在JSoup中是不可能的,所以我可以使用其他库来查找图像源。
2016-07-25
Trows
+1
请参见[你不能用正则表达式解析HTML](/问题/ 1732348 /正则表达式匹配开放标签,除了-XHTML-自足标签) –
+0
@Tibrogargan这是一个CSS选择器由Jsoup支持:https://jsoup.org/cookbook/extracting-data/selector-syntax –