您好我正在开展云计算项目亚马逊。我所坚持的部分代码是从亚马逊获得用户愿望清单。 由于存在权限限制,我所做的是在给定愿望列表网址的情况下提取整个页面源。要提取itemID,我使用了模式编译,如
Pattern p = Pattern.compile("/dp/(\\w+)/");
Matcher matcher = p.matcher(content);
这很简单,现在可以正确地列出所有带有itemId的产品。 我也需要每个人的价格。根据页面来源,价格是
<span class="a-size-base a-color-price a-text-bold">
$7.19
</span>
我需要为这个模式编写一个模式,我感到很困惑和困惑。我吮吸Regex表达式。有人可以帮忙吗。我看到了href的在线参考资料,但我认为这对我不起作用。
感谢dkatzel我找到了这个工具Jsoup。我在Online Jsoup Try尝试了在线转换,所以当我做CSS Query div时,我得到了所需的输出。但是我如何在我的java程序中对其进行硬编码。我有jsoup jar。
答案 0 :(得分:3)
使用Jsoup的替代答案。
Element e = doc.select("span.a-size-base").first();
在项目中或编译时包含jsoup-1.x.x.jar
,并添加以下导入。
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
答案 1 :(得分:1)
一个简单的表达不会起作用吗?
\\$\\d+(?:\\.\\d+)
\\$
与文字$
匹配。
\\d+
匹配数字。
(?:\\.\\d+)
匹配潜在的小数。
整个比赛就是你想要的,我猜,除非你不需要美元符号,那么你可以使用一个捕获组并取第一组(即\\$(\\d+(?:\\.\\d+))
)或者一个看后面(即(?<=\\$)\\d+(?:\\.\\d+)
)