我是一名新手Java程序员,现在开始进入库、API等领域。我已经有了一个相对简单的想法,可以作为我的个人项目,用于完成作业之余。
我对从几个不同网站爬取HTML并构建类似于“艺术家-“曲目名称”“的字符串很感兴趣。我已经让一个网站按照我想要的方式工作了,但我觉得这可以更加顺畅...以下是我在网站A上所做的事情:
我使用JSoup为所有类为plrow的元素创建元素,如下所示:
这是一种相当hackish的方式来获取
网站B有点不同。
我已经确定艺术家和标题都是这样包含的:
我试图先获取所有艺术家,然后获取标题,然后将两者合并,但我遇到了麻烦,因为用于显示曲目标题的"dc:title"属性也用于其他非音乐事物,所以我无法直接匹配艺术家和曲目。
我花了大部分周末的时间浏览了无数个带有Jsoup标签的问题,并花了很多时间阅读Jsoup cookbook和API指南。我觉得我遇到麻烦的一部分原因也可能源于我对网页编码方式的相对有限的了解,尽管这可能主要是我对如何将这些代码插入Jsoup的理解方面存在问题。
感谢任何帮助或指导,我必须说,在这里问一个非作业问题真的很不错(尽管我从别人问的问题中找到了很多线索!;))
我对从几个不同网站爬取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>
接下来,我创建一个字符串数组,将每一行在最后一个</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 cookbook和API指南。我觉得我遇到麻烦的一部分原因也可能源于我对网页编码方式的相对有限的了解,尽管这可能主要是我对如何将这些代码插入Jsoup的理解方面存在问题。
感谢任何帮助或指导,我必须说,在这里问一个非作业问题真的很不错(尽管我从别人问的问题中找到了很多线索!;))