【问题标题】:Getting Started With Android & JSOUPAndroid 和 JSOUP 入门
【发布时间】:2012-06-27 13:33:08
【问题描述】:

我目前正在尝试制作一个 Android 应用程序,并得出结论,我必须使用 JSOUP 来完成它。我正在使用 JSOUP 从 Internet 中提取数据,然后将其发布到我的应用程序上。

我想弄清楚的是如何从 url 中提取多位数据,然后在它们自己的 XML String TextView 中使用它们中的每一个(如果正确?)

这是我试图提取的 HTML 的片段。


a href="http://www.campusdish.com/en-US/CSMA/OldDominion/Locations/rda.aspx?RCN=m12296&MI=122&RN=BACoN TURKEY SLICED" OnCick="javascript: NewWindow('http ://www.campusdish.com/en-US/CSMA/OldDominion/Locations/rda.aspx?RCN=m12296&MI=122&RN=BACON TURKEY SLICED', 'RDA_window', 'width=450, height=600, scrollbars=no , toolbar=no, directory=no, status=no, menubar=no, copyhistory=no');return false" Class="recipeLink">BACON TURKEY SLICED


我正在尝试提取单词 BACON TURKEY SLICED

问题是我根本不懂 JSOUP。就像我对它有一个想法,但我似乎无法实际使用它等等。我想知道是否有人可以尝试推动我朝着正确的方向前进。

另外,我试过阅读食谱,但没有成功。

如果有人能帮忙,非常感谢!

编辑

这里还有两个。我相信它们是完全一样的。

a href="http://www.campusdish.com/en-US/CSMA/OldDominion/Locations/rda.aspx?RCN=m4903&MI=122&RN=STATION OMELET" OnClick="javascript: NewWindow('http: //www.campusdish.com/en-US/CSMA/OldDominion/Locations/rda.aspx?RCN=m4903&MI=122&RN=STATION OMELET', 'RDA_window', 'width=450, height=600, scrollbars=no, toolbar =no, directory=no, status=no, menubar=no, copyhistory=no');return false" Class="recipeLink">STATION OMELET

a href="http://www.campusdish.com/en-US/CSMA/OldDominion/Locations/rda.aspx?RCN=m784&MI=122&RN=CEREAL HOT GRITS" OnClick="javascript: NewWindow('http ://www.campusdish.com/en-US/CSMA/OldDominion/Locations/rda.aspx?RCN=m784&MI=122&RN=CEREAL HOT GRITS', 'RDA_window', 'width=450, height=600, scrollbars=no , toolbar=no, directory=no, status=no, menubar=no, copyhistory=no');return false" Class="recipeLink">CEREAL HOT GRITS

【问题讨论】:

    标签: java javascript android html jsoup


    【解决方案1】:

    因此,此答案将假定您对以下内容感兴趣:

    给出你的例子,这里是一个字符串:

    String tastyTurkeySandwich= "<a href=\"http://www.campusdish.com/en-US/CSMA/OldDominion/Locations/rda.aspx?RCN=m12296&amp;MI=122&amp;RN=BACoN  TURKEY  SLICED\" OnCick=\"javascript: NewWindow('http://www.campusdish.com/en-US/CSMA/OldDominion/Locations/rda.aspx?RCN=m12296&amp;MI=122&amp;RN=BACON  TURKEY  SLICED', 'RDA_window',  'width=450, height=600, scrollbars=no, toolbar=no,  directories=no, status=no, menubar=no, copyhistory=no');return false\" Class=\"recipeLink\">BACON  TURKEY  SLICED</a>";
    

    您可以使用以下代码提取(第一个)文本:

    Document doc = Jsoup.parse(tastyTurkeySandwich);
    Elements links = doc.select("a[href].recipeLink");
    // This will just print the text in the first one
    System.out.println(links.first().text());
    

    迭代Elements(实现Iterable接口)实例:

    for (Element link : links) {
        // Calling link.text() will return BACON TURKEY SLICED etc. etc.
        System.out.println(link.text());
    }
    

    简而言之:

    1. a[href] 将匹配所有具有 href 属性的 标记。
    2. .recipeLink 部分将过滤该选择以仅包含具有 recipeLink 样式的链接。

    【讨论】:

    • 好的,非常感谢!这帮了大忙!我将如何提取与这个几乎相同的其余部分(唯一的变化是食品)。我还需要提取大约 4 个。我不能仅仅通过硬编码将它们变成字符串,因为它会每天更新。
    • 那么,这些链接有哪些共同属性?编辑您的问题并添加其他 4 个问题?
    • 我刚刚在此页面顶部添加了两个。完全相同的东西只是食物不同。
    • 两者都具有相同的样式属性 (receipeLink) - 如果您将带有所有这些链接的整个文档输入到上面的示例中,Elements links 变量将允许您找到每一个。
    • 你是说要这样做吗: 1. Document doc = Jsoup.parse(url);元素 lins = doc.select("a[href].recipeLink");或 2. String tasteTurkeySandwich = "我复制和粘贴的整个网站源代码";
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多