当前位置:  开发笔记 > 编程语言 > 正文

JSOUP选择具有特定ID的<div>

如何解决《JSOUP选择具有特定ID的<div>》经验,为你挑选了2个好方法。

我正在为一个班级制作一个小型Android应用程序,在那里我可以从美国癌症协会的网站上找到癌症相关事件.我一直在使用JSoup来获取有关事件的基本信息,并从我尝试使用select()方法的网站获取特定信息.但是,我正在使用的当前方法抓取的方式比我想要的更多HTML节点,我无法弄清楚原因.我试图抓住的表看起来像这样:

编辑:我意识到where id ="pnlResults"并没有在那个表结束,它在大约3个表之后结束,所有表都包含我想要获取的信息.这是表格

    

American Cancer Society 44th Annual Walter Hagen Golf Tournament

General Information

Monday, July 30, 2012
10:00 AM - 9:00 PM

Eastern

The American Cancer Society Walter Hagen Golf Tournament highlights the Society’s role in supporting research and patient care here in Rochester. Funds raised through this event help us make a difference in patents’ lives every day though programs including Road to Recovery and Patient Navigation as well as support grants to our research institutions. 144 golfers will play a round of golf and then enjoy cocktails, dinner, and silent auction following the tournament.

10:00am - Check-in, 11:00am - Lunch, 12:15pm - Shot gun start, 6:00 - Cocktails and silent auction, 7:00pm Dinner and program

Event Location

Irondequoit Country Club

4045 East Avenue
Rochester, New York 14618

Yes

Primary Contact

Katerina Kormas (Contact ACS for Details)

ACS Staff

(585) 288-1950

Direct line is 585-224-4919 or cell 585-645-8912

Registration Information

Yes

Event Cost

$350 per golfer

Cash, Check, American Express, Mastercard, Visa, Discover

American Cancer Society

American Cancer Society 44th Annual Walter Hagen Golf Tourna

American Cancer Society
1120 South Goodman St
Rochester, New York 14620

Tax Deduction Information

$210 per golfer is tax deductible

编辑:鉴于这些新表,我想提取一般信息和事件位置.我该怎么做呢?也许使用select的子集我只需要再次选择哪里标题是我想要的?

我正在使用select()的代码如下所示.正如我之前所说,我试图使用

select("div[id=pnlResults]);

但返回的数据不仅仅是id为pnlResults的div.

public ArrayList results()
{
    ArrayList results = new ArrayList();
    Document doc = Jsoup.parse(page);
    Elements links = doc.select("a[href*=event-details]");

    for(Element e: links)
    {
        String title = e.text();
        String link = "http://www.cancer.org/involved/participate/app/"+e.attr("href");
        try{
            Document eventInfo = Jsoup.connect(link).get();
            Elements info = eventInfo.select("div[id*=pnlResults");


        }
        catch(MalformedURLException exception)
        {
            exception.printStackTrace();
        }
        catch(IOException exception)
        {
            exception.printStackTrace();
        }

    }
    return results;
}

任何帮助将不胜感激.



1> C0deAttack..:

尝试:

 Elements info = eventInfo.select("div#pnlResults");

更新更新:

由于您现在拥有更多数据,并且由于HTML本身并不是那么好,您只需要通过它来挑选您的数据.如果您需要的内容都具有id值,则使用id这些元素的属性来获取文本.



2> akelec..:

如果你想获得id为"pnlResults"的div的内容,JSoup提供方法getElementById.

例如,如果您想获取该内容并将其放在字符串中,您可以这样做:

Document document = Jsoup.connect(LINK_TO_WEBSITE).get();
String content = document.getElementById("pnlResults").outerHtml();

然后,您可以将此内容放在Android的WebView中,它会很好用.

希望这会对某人有所帮助!

推荐阅读
手机用户2402851335
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有