当前位置: 首页 > 知识库问答 >
问题:

使用JSOUP删除重复的elementText值

龙承德
2023-03-14

我在URL http://www.walmart.com/search/search-ng.do?tab_value=all废弃沃尔玛页面

我正在基于用户参数构建 URL 并使用构建 DOM 对象

Document doc = Jsoup.parse(contentVar); 

对于下一步,我想打印所有产品/价格。我使用了以下代码:

String price = doc.getElementsByClass("camelPrice").text();
String title = doc.getElementsByClass("ListItemLink").text();       
System.out.println("Product: " + title);
System.out.println("Price: "+ price);

在这里,我使用价格和产品描述的标签。但是,我的结果是:

Title/Product Name: C1, C2, ... C16 (c is camera title)
Price: $279.95 $279.95 $479.00 $479.00 $60.00 $60.00 $99.00 $99.00 $429.00 $429.00 $129.00 $129.00 $109.00 $109.00 $89.00 $89.00 $384.00 $384.00 $69.00 $69.00 $279.00 $279.00 $129.00 $129.00 $55.20 - $69.00 $55.20 - $69.00 $74.00 $74.00 $119.00 $119.00

这里的价格是重复的,因为可能有一个quickview标签。是否有任何方法可以使用任何JSOUP方法消除价格的重复性

共有2个答案

陈胤
2023-03-14

我知道现在这对线程的创建者来说可能毫无用处,但是当我在亚马逊英国上查找产品的价格时,我发现了这一点。

String pricing = doc.getElementsByClass("priceLarge").text();
System.out.println("price : " + pricing);

下面是执行此操作的代码:)

乌杰
2023-03-14

嗯,看到html dom,我注意到有重复的,这是有价格的。

<div class="ItemShelfAvail">     <----------- SEE HERE
<div class="OnlinePriceAvail">
<div class="PriceHeader OnlineHead">Online</div>
<div class="PriceContent">
<div class="PriceDisplay" id="price_display_23204350_2">
<div class="PriceCompare">
<div class="camelPrice"><span class="prefixPriceText2"></span><span class="bigPriceText2">$279.</span><span class="smallPriceText2">00</span><span></span></div>

和一个价格

<div class="OnlinePriceAvail">
<div class="PriceHeader OnlineHead">Online</div>
<div class="PriceContent">
<div class="PriceDisplay" id="price_display_23204350_2">
<div class="PriceCompare">
<div class="camelPrice"><span class="prefixPriceText2"></span><span class="bigPriceText2">$279.</span><span class="smallPriceText2">00</span><span></span></div>

你必须从这两个列表中找出你想要的列表,然后放置一个合适的选择器。如果您想要两者,只需获取getElementsByClass返回的元素列表并操纵每个价格。

getElementsByClass返回Elements,这是一个列表,其中每个节点都是Element类型。你可以做

Elements elPrice = doc.getElementsByClass("camelPrice");
 类似资料:
  • 请注意,在转向您之前,我已经浏览了各种帖子。事实上,我尝试实现中提供的解决方案:基于“notin”条件从数据帧中删除行 我的问题如下。让我们假设我有一个巨大的数据帧,我想删除重复的数据帧。我很清楚我可以使用drop_duplicates,因为这是最快的最简单的方法。然而,我们的老师希望我们创建一个包含重复项ID的列表,然后根据这些值是否包含在上述列表中删除它们。 现在,让我们看看输出: 因此,我得

  • 问题内容: 有没有一种方法可以使用ant删除重复文件?具体来说,如果我在两个不同的输出目录中具有相同的文件名,则要从第二个目录中删除它。 问题答案: 我想我想出了一个解决方案。

  • 问题内容: 我在存储的过程中有一个字符串,类似于或 从上面的字符串中,我必须从中删除多个逗号,它必须看起来像 或仅在 then时 。我必须仅使用Sql Server函数。我正在使用Sql Server 2008和.Net 3.5 提前致谢。 问题答案: 该选项适用于仅使用逗号或最多398个连续逗号的字符串。 如果需要更多,在顶部添加额外的2的幂,或者如果需要较少,则从顶部删除2的幂。每个阶段的注释

  • 问题内容: 我有一张看起来像这样的桌子 表格1 ID,名称 如何编写查询以删除所有具有重复名称的行,但保留具有较低ID的行? 问题答案: 如果您使用的是SQL Server 2005或更高版本: 如果使用SQL Server 2000及更低版本

  • 尽管这听起来可能太基本了,但我想问一下如何使用JSoup从doc中删除元素。 我试图寻找它,但没有成功。 问题是: 这工作罚款。但是我相信一次又一次地选择相同的元素可能会证明内存饥饿。有可能吗? //尝试从doc中选择myNewElements。