我是 Jsoup 的新手,我一直在尝试创建一个小代码,使用 Jsoup 获取 Steam 库存中的元素名称。
public Element getItem(String user) throws IOException{
Document doc;
doc = Jsoup.connect("http://steamcommunity.com/id/"+user+"/inventory").get();
Element element = doc.getElementsByClass("hover_item_name").first();
return element;
}
这个方法返回:
<h1 class="hover_item_name" id="iteminfo0_item_name"></h1>
我想要在单击特定窗口时生成的“h1”标签之间的信息。 先感谢您。
最佳答案
您可以使用 .select(String cssQuery)
方法:
doc.select("h1")
为您提供所有 h1
元素
。
如果您需要这些标签中的实际文本,请为每个 Element
使用 .text()
。
如果您需要 class
或 id
之类的属性,请在 Element
上使用 .attr(String attributeKey)
例如:
doc.getElementsByClass("hover_item_name").first().attr("id")
给你 "iteminfo0_item_name"
但是,如果您需要在网站上执行点击,则无法使用 JSoup 执行此操作,因此 JSoup 是一个 HTML 解析器,而不是浏览器替代品。 Jsoup 无法处理动态内容。
但是你可以做的是,首先在你的 h1
标签中抓取相关数据,然后发送一个新的 .post()
request , 分别是 ajax call
如果您更想要一个真正的网络驱动程序,请查看 Selenium .
关于java - Jsoup 抓取 HTML 动态内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37123650/