首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法弄清楚如何使用Jsoup刮取特定的文本

无法弄清楚如何使用Jsoup刮取特定的文本
EN

Stack Overflow用户
提问于 2017-04-06 08:45:09
回答 1查看 164关注 0票数 0

我刚开始学习如何使用JSoup。我认为我已经成功地选择了html的这一部分,并且通过执行.select("span.title").text成功地删除了“黑暗灵魂III豪华版”,但是我试图获得价格,在这个例子中是$84.98和$55.23。我试着做.select("div.col search_price responsive_secondrow").text,但结果却是空白。我想知道是否有人能帮我找出如何提取这部分,谢谢提前!这是页面部分的html。

完整的html是视图-源:http://store.steampowered.com/search/?filter=topsellers

代码语言:javascript
复制
<a href="http://store.steampowered.com/sub/94174/?snr=1_7_7_topsellers_150_1"  data-ds-packageid="94174" data-ds-appid="374320,442010"onmouseover="GameHover( this, event, 'global_hover', {&quot;type&quot;:&quot;sub&quot;,&quot;id&quot;:94174,&quot;public&quot;:1,&quot;v6&quot;:1} );" onmouseout="HideGameHover( this, event, 'global_hover' )" class="search_result_row ds_collapse_flag" >
                <div class="col search_capsule"><img src="http://cdn.edgecast.steamstatic.com/steam/subs/94174/capsule_sm_120.jpg?t=1476893662"></div>
                <div class="responsive_search_name_combined">
                    <div class="col search_name ellipsis">
                        <span class="title">DARK SOULS III Deluxe Edition</span>
                        <p>
                            <span class="platform_img win"></span>                          </p>
                    </div>
                    <div class="col search_released responsive_secondrow">12 Apr, 2016</div>
                    <div class="col search_reviewscore responsive_secondrow">
                                                        <span class="search_review_summary positive" data-store-tooltip="Very Positive&lt;br&gt;86% of the 29,204 user reviews for games in this bundle are positive.">
                            </span>
                                                </div>


                    <div class="col search_price_discount_combined responsive_secondrow">
                        <div class="col search_discount responsive_secondrow">
                            <span>-35%</span>
                        </div>
                        <div class="col search_price discounted responsive_secondrow">
                            <span style="color: #888888;"><strike>$84.98</strike></span><br>$55.23                          </div>
                    </div>
                </div>


                <div style="clear: left;"></div>
            </a>
EN

Stack Overflow用户

回答已采纳

发布于 2017-04-06 09:24:54

使用doc.select("a.search_result_row")代替:

代码语言:javascript
复制
public class JsoupSteamTest {

    public static void main(String[] args) throws IOException {

        Document doc = Jsoup.connect("http://store.steampowered.com/search/?filter=topsellers").userAgent("Mozilla")
                .get();

        Elements table = doc.select("a.search_result_row");

        Iterator<Element> ite = table.iterator();
        while (ite.hasNext()) {
            Element element = ite.next();
            System.out.println(element.text());

        }
    }
}

你会得到这样一个列表:

代码语言:javascript
复制
PLAYERUNKNOWN'S BATTLEGROUNDS 23 Mar, 2017 29,99€
Steel Division: Normandy 44 Coming Soon 39,99€
DARK SOULS™ III 11 Apr, 2016 -50% 59,99€ 29,99€

您的特殊问题来自于包含多个类的div。

若要选择具有多个类的元素,请在选择中使用一个点而不是空格:

代码语言:javascript
复制
doc.select("div.col.search_price.discounted.responsive_secondrow");

看看这个问题:JSOUP get element with multiple classes

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43250113

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档