我在试着把这篇课文放在跨度内
使用下面的代码。但是,输出的行为就好像嵌套跨距不存在一样
Elements tags = document.select("div[id=tags]");
for (Element tag:tags){
Elements child_tags = tag.getElementsByTag("class");
String key = tag.html();
System.out.println(key); //only as a test
for (Element child_tag:child_tags){
System.out.println("\t" + child_tag.text());
}
我的输出是
<hr />Tags:
<span id="category"></span>
<span id="voteSelector" class="initially_hidden"> <br /> </span>
Elements child_tags = tag.getElementsByTag("class");
通过这一行,您试图获得一个带有标记类的元素,即
Elements child_tags = tag.getElementsByClass("tag");
通过class=tag的属性值获取元素,或者:
Elements child_tags = tag.getElementsByTag("span");
通过tag name=span获取元素。
现在,使用Jsoup,您将获得在浏览器中作为源代码呈现的任何数据,为了确认,您可以在浏览器中按CTRL U
,这将打开一个新窗口,其中将显示Jsoup将获得的实际内容。现在来回答您的问题,您试图检索的部分不在浏览器源代码中,请按CTRL U
检查。
如果内容是使用JAVASCRIPT呈现的,那么JSOUP将看不到这些内容,因此您必须使用运行JAVASCRIPT并向您提供详细信息的其他内容。
JSoup不运行Javascript,也不是浏览器。
编辑
使用硒有一个转变。以下是获取url的确切源代码以及您正在查找的所需数据的工作代码:
import java.io.IOException;
import java.io.PrintWriter;
import org.json.simple.parser.ParseException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
public class JsoupDummy {
public static void main(String[] args) throws IOException, ParseException {
System.setProperty("webdriver.gecko.driver", "D:\\thirdPartyApis\\geckodriver-v0.19.1-win32\\geckodriver.exe");
WebDriver driver = new FirefoxDriver();
try {
driver.get("https://chesstempo.com/chess-problems/15");
Document doc = Jsoup.parse(driver.getPageSource());
Elements elements = doc.select("span.ct-active-tag");
for (Element element:elements){
System.out.println(element.html());
}
} catch (Exception e) {
e.printStackTrace();
} finally {
/*write.flush();
write.close();*/
driver.quit();
}
}
}
您需要selenium web驱动程序selenium web驱动程序,它模拟浏览器行为,并允许您呈现由脚本编写的html内容。
我正在使用jsoup HTML解析器,并试图进入span类并从中获取文本,但它什么也不返回,并且其大小始终为零。我粘贴了HTML源代码的一小部分。请帮我提取文本。 我尝试了以下代码: 如果你对我的内容不是很清楚,请问我。提前谢谢。
我正在使用Jsoup HTML解析器从HTML页面提取内容。 我想提取的内容(68.00),我尝试以下: 这不起作用,因为类“oPrice”在页面中出现了44次,字符串“priceString”包含44种不同的价格。 谢谢你的帮助。
我有一个这样的目标字符串:(然而嵌套在实践中可能非常深) 预期结果将是: 小组: 我在c#regex中找不到任何东西可以这样做嵌套捕获。有可能吗? 编辑: 我想我把我的例子简化得太多了,这使答案模糊不清。我需要以递归的方式捕获,因为我需要括号内的内容: 预期结果将是: 和
我在springboot应用程序中使用了嵌入式Redis进行缓存。redis在应用程序启动时运行在localhost和默认上。 是否有一种方法来获取度量(内存使用、keyspace_hits、keyspace_misses,等等)对于嵌入式redis,来自应用程序外部的,可能是命令行或任何?
使用JSI.999读取值。我的密码是 通过使用这个代码,我得到了价值(66%的折扣),请看一下这个代码。谢谢你。。