![](/img/trans.png)
[英]Extracting href from a class within other div/id classes with jsoup
[英]JSoup - Grabbing URL from div class within a div id
我四处漫游,试图找到一种解决方案,该解决方案涉及如何从网页内的div(具有ID)中抓取字符串-更具体地说,是另一个URL。 这是我目前拥有的代码:
Document doc = Jsoup.connect("http://www.wowhead.com/item=" + item_id).get();
Elements info = doc.select("div#ic" + item_id);
System.out.println(info);
一个项目ID的示例为10003。我正在尝试获取与inner-div中的项目相对应的图像URL,但它仅返回以下内容:
<div id="ic10003" style="float: left"></div>
我还尝试使用以下方法选择名为iconlarge的inner-div类:
Elements info = doc.select("div.iconlarge");
但是它什么也没返回。 我假设这是一个变量类型问题,但我仍然不确定。 有什么建议么?
使用Jsoup很难。 当您打印doc
您会看到一个元素:
<div id="ic10003" style="float: left"></div>
没有内容。 不过,在下面几行中,有一个脚本似乎正在将图像添加到该div中:
$WH.ge('ic10003').appendChild(Icon.create('inv_gauntlets_05', 2, null, 0, 1));
// and a few more lines
现在, Jsoup仅能够解析原始 HTML,它不执行任何脚本或将样式表应用于元素。
不知道这是否正是您要查找的内容,但是请看一下该网站的meta
标记:
<meta property="og:site_name" content="Wowhead">
<meta property="og:title" content="Black Mageweave Gloves">
<meta property="og:image" content="//wow.zamimg.com/images/wow/icons/large/inv_gauntlets_05.jpg">
<meta property="og:url" content="http://www.wowhead.com/item=10003/black-mageweave-gloves">
...
具有og:image
property
值的元素似乎正是您要寻找的。
您可以使用类似以下方法的内容(请注意select
仅适用于body
元素)来阅读它:
private String imgUrl(Document doc) {
for (Element m : doc.getElementsByTag("meta")) {
if ("og:image".equals(m.attr("property")))
return m.attr("content");
}
return null;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.