提问人:Ashish Bhoya 提问时间:10/30/2022 更新时间:10/30/2022 访问量:49
如何在有/没有废弃网页的情况下读取 div 详细信息,这在 java 源代码中不存在?
How to read a div details with / without scrapping web page which is not present in source code in java?
问:
我有一个用例,我想在边缘商店中读取已发布扩展的版本。 任何已发布扩展的链接如下 -> https://microsoftedge.microsoft.com/addons/detail/incognito-adblocker/efpgcmfgkpmogadebodiegjleafcmdcb
现在,我面临的问题是版本所在的跨度。( Span ID 是 “versionLabel” ),有一个名为 “root” 的父 div。现在,如果我们检查它并检查它,我们可以看到这个“根”div 的所有子 div。但是,如果我们看到此页面的来源( Ctrl + U )。这个 div 总是显示为空,没有细节。
<div id="root" style="min-height: 100vh"></div>
我正在使用 Jsoup 解析此页面并获取此详细信息,但因为这个 div“root”是空的。我无法阅读此“verisonLabel”详细信息。有什么办法可以做到这一点吗?
请参考我已经尝试过但没有奏效的方法。
1.
String URL = "https://microsoftedge.microsoft.com/addons/detail/incognito-adblocker/efpgcmfgkpmogadebodiegjleafcmdcb";
Document doc = Jsoup.connect(URL).get();
Element version = doc.getElementById("versionLabel");
Document demo = Jsoup.parse(URL);
Element newHere = demo.getElementById("versionLabel");
WebDriver driver = new ChromeDriver();
driver.get(URL);
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
WebElement e = driver.findElement(By.xpath("//*[text()='Get started free']"));
System.out.println(e);
String webpage = "https://microsoftedge.microsoft.com/addons/detail/incognito-adblocker/efpgcmfgkpmogadebodiegjleafcmdcb";
URL url = new URL(webpage);
BufferedReader readr =
new BufferedReader(new InputStreamReader(url.openStream()));
// Enter filename in which you want to download
BufferedWriter writer =
new BufferedWriter(new FileWriter("Download.html"));
// read each line from stream till end
String line;
while ((line = readr.readLine()) != null) {
writer.write(line);
}
readr.close();
writer.close();
在每种方式中,由于“根”div 本身是空的,因此我无法读取“versionLabel”范围。 有人可以在这里建议一些方法吗?
答:
1赞
AbiSaran
10/30/2022
#1
这将从“versionLabel”中获取版本:
driver.find_element(By.XPATH, "(//span[@id='versionLabel'])[2]").text
评论
find_element