我是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>
我希望信息来自&#34; h1&#34;单击特定窗口时生成的标签。 先感谢您。
答案 0 :(得分:2)
您可以使用.select(String cssQuery)
方法:
doc.select("h1")
为您提供所有h1
Elements
。
如果您需要这些标记中的实际文字,请为每个.text()
使用Element
。
如果您需要class
或id
等属性,请.attr(String attributeKey)
使用Element
,例如:
doc.getElementsByClass("hover_item_name").first().attr("id")
为您提供"iteminfo0_item_name"
但是如果您需要在网站上执行点击,则无法使用JSoup执行此操作,因此JSoup是HTML解析器而不是浏览器替代方案。 Jsoup无法处理动态内容。
但您可以做的是,首先抓取h1
代码中的相关数据,然后分别发送新的.post()
request和ajax call
如果您想要一个真正的网络驱动程序,请查看Selenium。
答案 1 :(得分:0)
使用.text()
并返回String
,即:
public String 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();
String text = element.text();
return text;
}