【发布时间】:2018-07-18 22:23:09
【问题描述】:
如何从 以下页面来源? 我只想从源代码中获取这些值,但我不确定最好的方法。
<div class="txt-block">
<h4 class="inline">Budget:</h4>$23,000,000
<span class="attribute">(estimated)</span>
</div>
<div class="txt-block">
<h4 class="inline">Opening Weekend USA:</h4> $260,382,
<span class="attribute">20 December 2013</span>, <span class="attribute">Limited Release</span>
</div>
<div class="txt-block">
<h4 class="inline">Gross USA:</h4> $25,568,251
</div>
<div class="txt-block">
<h4 class="inline">Cumulative Worldwide Gross:</h4> $47,351,251
</div>
我试过这样:
String url = "https://www.imdb.com/title/tt1798709";
Connection connection = Jsoup.connect(url);
Document document = connection.get();
Elements element = document.getElementsByClass("txt-block");
String gross = "";
String budget = "";
String budgetRegex = "Budget:.*";
String grossRegex = "Cumulative Worldwide Gross:.*";
for (Element e : element) {
if (e.text().matches(budgetRegex)) {
String text = e.text();
budget = StringUtils.substringBetween(text, "$", " ");
break;
} else {
budget = null;
}
}
for (Element e : element) {
if (e.text().matches(grossRegex)) {
String text = e.text();
gross = StringUtils.substringAfter(text, "$");
break;
} else {
gross = null;
}
}
System.out.println(gross + ", " + budget);
它正在工作,但有更好的解决方案吗?
【问题讨论】:
-
如果美元金额包含在 DOM 元素中,那么检索它们几乎是微不足道的。
-
“它正在工作,但如何做得更好?”在这种情况下,您的问题更适合codereview.stackexchange.com
-
我投票结束这个问题,因为它属于 Stack Exchange 网络中的另一个站点,即 codereview.stackexchange.com