我是一名 Java 程序员新手,现在刚刚开始涉足库、API 等领域。我现在有一个相对简单的想法,当我不做作业时,它可以成为我的宠物项目。
我有兴趣从几个不同的站点抓取 html,并构建看起来像“Artist - “Track Name””的字符串。我有一个站点以我想要的方式工作,但我觉得它可以更顺利地完成......这是我为站点 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>
从那里,我创建了一个字符串数组,这些行在 last 之后被拆分</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()+ "”";
}
这是获得我想要的方式的一种非常hackish的方式Artist "Title"
,但结果对我来说很好。
站点 B 有点不同。
我已经确定艺术家和标题都是这样包含的:
<span class="artist" property="foaf:name">Artist Name</span> </a> </span> <span class="title" property="dc:title">Title</span>
连同更多信息,全部在<li id="segmentevent-random" class="segment track" typeof="po:MusicSegment" about="/url"> song info </li>
我试图先检查所有艺术家,然后是标题,然后将两者合并,但我遇到了麻烦,因为用于显示曲目标题的“dc:title”属性用于其他非音乐的东西,所以我不能直接将艺术家与曲目匹配。
这个周末我花了大部分时间试图通过查看无数用 Jsoup 标记的问题来解决这个问题,并花费大量时间阅读 Jsoup 食谱和 API 指南。我有一种感觉,我的部分问题也可能源于我对网页如何编码的知识相对有限,尽管这可能主要是我对如何将这些代码插入 Jsoup 的理解的问题。
我感谢任何帮助或指导,我不得不说,在这里问一个非家庭作业问题真的很好(尽管我从其他人的问题中找到了很多提示!;))