gpt4 book ai didi

java - 使用 jsoup 进行网页抓取 html 解析问题

转载 作者:行者123 更新时间:2023-12-01 18:47:16 24 4
gpt4 key购买 nike

我有一个 Spring Boot 应用程序,可以抓取网站,我可以让它工作,但似乎无法弄清楚如何访问内部 html 元素进行迭代。似乎我总是只接触到外部的 html 内容。下面是我的代码

private void fetchData() {
try {
Document doc =
Jsoup.connect("https://www.i-90motorsports.com/default.asp?page=xPreOwnedInventory").userAgent("Mozilla/17.0").get();

Elements elementList = doc.select("doc.info");
Elements vehBody = doc.select("div#VehBody");
if(doc.getAllElements().isEmpty()) {
aStringBuilder.append("Nothing found for " );
addLineBreak();
return;
}
for(Element anElement : vehBody) {
//if(isElementValid(anElement)) {
aStringBuilder.append(anElement.getElementsByTag("a").first().text() );
addLineBreak();
//}
}
aStringBuilder.append("Finished Scraping websites. Found "+ elementList.size() +" elements");
addLineBreak();

} catch (IOException e) {
e.printStackTrace( );
}

}

这是我想要获取的html。我试图迭代每个车辆行,但不确定在“选择”部分中输入哪个值。有建议吗?

<div id="VehBody">


<div class="vehicle_row dspYear-2020 dspCondition-PREOWNED dspBodyType-SNOWMOBILE dspSubType-MOUNTAIN dspMake-SKI-DOO dspModel-SUMMIT-X-850-E-TEC-175-SS-POWDERMAX-LIGHT-3-0-S-LEV-BLUE images-1" rel="8382204"><div class="unitImage"><div class="imageRow">

最佳答案

在本例中<div id="VehBody">是一个空元素通过 JavaScript 填充,因此不能被 jsoup 读取(用于读取页面源代码,而不是读取由 JavaScript 修改的 DOM)。相反,您可以通过解析 the JavaScript file that is included at the end of the header 来获取所需的数据。 :

<script id='jsCachedFile' src='/imglib/Inventory/cache/2366/UVehInv.js?v=1892194' type='text/javascript' ></script></head>

请注意参数v每次请求 HTML 页面时都会发生变化。

关于java - 使用 jsoup 进行网页抓取 html 解析问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59805871/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com