我是一个Java程序员新手,现在才开始扩展到库、API等领域。我现在有了一个比较简单的想法,当我不做作业的时候,可以成为我的宠物项目。
我感兴趣的是从几个不同的站点刮取html,并构建看起来像“艺术家-”曲目名称“”的字符串。我有一个网站工作的方式,我想,但我觉得它可以做得更顺利...以下是我为A站点所做的工作的简要介绍:
我让JSoup为plrow类的所有内容创建元素,如下所示:
<p class="plrow"><b><a href="playlist.php?station=foo">Artist</a></b> “Title” (<span class="sn_ld"><a href="playlist.php?station=foo">Label</a></span>) <SMALL><b>N </b></SMALL></p></td></tr><tr class="ev"><td><a name="98069"></a><p class="pltime">Time</p>
从那里,我创建一个字符串数组,在最后一个
for (int i = 0; i < tracks.length; i++){
tracks[i] = Jsoup.parse(tracks[i]).text();
tracks[i] = tracks[i].split("”")[0];
tracks[i] = tracks[i].toString()+ "”";
}
这是一个非常奇怪的方法来获得艺术家“标题”
我想要的方式,但结果对我来说很好。
站点B有点不同。
我确定艺术家和标题都包含如下内容:艺术家名称标题
连同更多信息,所有内容都在
歌曲信息
我试图先搜索所有艺术家,然后搜索标题,然后合并两者,但我遇到了麻烦,因为用于显示曲目标题的“dc:title”属性用于其他非音乐的东西,所以我不能直接将艺术家与曲目匹配起来。
这个周末,我花了很大一部分时间来查看无数带有Jsoup标签的问题,并花了很多时间阅读Jsoup食谱和API指南。我有一种感觉,我的部分问题也可能来自于我对web页面如何编码的知识相对有限,尽管这可能主要是我对如何将这些代码插入JSOUP的理解方面的问题。
我很感谢任何帮助或指导,我不得不说,在这里问一个非家庭作业问题真的很好(尽管我从别人问的问题中找到了不少提示!;))
如果您有一些不同的网站想要解析内容,最好在它们之间有所区别。也许您可以根据URL来决定是解析A页还是解析B页。
示例:
if( urlToPage.contains("pagea.com") )
{
// Call parsemethod for Page A or create parserclass
}
else if( urlToPage.contains("pageb.com") )
{
// Call parsemethod for Page B or create parserclass
}
// ...
else
{
// Eg. throw Exception because there's no parser available
}
您可以使用单行代码将每个页面连接并解析为文档:
// Note: the protocol (http) is required here
Document doc = Jsoup.connect("http://pagewhaterver.com").get();
在不了解Html或每个页面的结构的情况下,以下是一些基本方法:
for( Element element : doc.select("p.plrow") )
{
String title = element.ownText(); // Title - output: '“Title” ()' (you have to replace the " and () here)
String artist = element.select("a").first().text(); // Artist
String label = element.select("span.sn_ld").first().text(); // Label
// etc.
}
与B页类似,可以这样选择Artitst和Title:
String artist = doc.select("span.artist").first().text();
String title = doc.select("span.title").first().text();
下面是对Jsoup选择器API的一个很好的概述:http://Jsoup.org/cookbook/extracture-data/selector-syntax
我正在尝试使用jSoup刮一个网站,有以下内容。我对jSoup很陌生,还在想办法。我想做的是能够采取的产品名称和价格,并把他们放入一个excel文件的名称在A列和价格在B列,0.00可以忽略或放在C列,无论什么更容易。任何帮助都将是伟大的,因为我知道有人会问,这不是一个家庭作业。 谢谢提前,我真的很感激。 **这是否是表元素,因为这是列表前的“表”代码,如果不是,我应该在html代码中查找什么?
主要内容:Jsoup 获取HTML 语法,Jsoup 获取HTML 说明,Jsoup 获取HTML 示例以下示例将展示在将 HTML 字符串解析为 Document 对象后获取内部 html 和外部 html 的方法的使用。 Jsoup 获取HTML 语法 document :文档对象代表 HTML DOM。 Jsoup : 解析给定 HTML 字符串的主类。 html : HTML 字符串。 link : 元素对象表示表示锚标记的 html 节点元素。 link.outerHtml() : o
我知道如何计算出字符串中某个字符或数字的索引,但是有没有任何预定义的方法可以用来给我第n个位置的字符?所以在字符串“foo”中,如果我要求索引为0的字符,它会返回“f”。 注意——在上面的问题中,我所说的“字符”不是指字符数据类型,而是字符串中的字母或数字。这里重要的一点是,调用该方法时,我不会收到char,而是一个字符串(长度为1)。我知道substring()方法,但我想知道是否有更简洁的方法
问题内容: 我知道如何计算字符串中某个字符或数字的索引,但是我可以使用任何预定义的方法在第n个位置给我该字符吗?因此,在字符串“ foo”中,如果我要求索引为0的字符,它将返回“ f”。 注意-在上述问题中,“字符”不是字符数据类型,而是字符串中的字母或数字。这里重要的是,调用该方法时,我不会收到字符,而是一个字符串(长度为1)。而且我知道substring()方法,但是我想知道是否有更整洁的方法
主要内容:Jsoup 读取URL获取HTML 语法,Jsoup 读取URL获取HTML 说明,Jsoup 读取URL获取HTML 示例以下示例将展示使用 url 从网络获取 HTML,然后查找其数据。 Jsoup 读取URL获取HTML 语法 document : 文档对象代表 HTML DOM。 Jsoup : 连接 url 并获取 HTML 字符串的主类。 url : 要加载的 html 页面的 url。 Jsoup 读取URL获取HTML 说明 connect(url) 方法连接到 url
如何使用JSOUP从html字符串获取图标路径? 我找到了在网页上添加favicon的不同方法- (在谷歌) 我能得到的第一个方法是使用doc。选择(“html头元”) 但我无法选择链接标签