从网站中查找一些播放列表信息
Finding some playlist information from a Website
我正在尝试为以下网站实施广播应用程序:
http://www.c895.org/mp3/
该网站使用 SGPlayer 显示艺术家和歌曲名称。我可以检索该信息,但无法找到可以访问以前播放曲目的位置。
我已经在 Chrome 中使用 Google 开发人员工具尝试查找 API 链接或 JSON 数据,但我找不到位置该播放列表信息已保存。
我应该继续寻找数据,还是应该在我的 Android 应用程序中实施一种根据网站上显示的内容提供数据的方法?
我想过使用AsyncTasks通过后端高效加载数据。
任何想法、想法和意见都有很大帮助!
您的播放列表在那里可用:https://www.c895.org/playlist/
我认为页面的解析比使用私有API更好。
为此,您可以使用 JSOUP.
此站点的示例:
String url = "https://www.c895.org/playlist/";
Document document = Jsoup.connect(url).get();
Element playlist = document.select("#playlist").first();
List<TrackInfo> tracks = new ArrayList<>();
for (Element track : playlist.children()) {
long time = Long.parseLong(track.dataset().get("ts"));
String title = track.select(".title").first().text();
String artist = track.select(".artist").first().text();
// `time * 1000` because `java.util.Date` requires milliseconds
// but `time` (`data-ts`) is a count of seconds
tracks.add(new TrackInfo(new Date(time * 1000), title, artist));
}
// example output:
// TrackInfo{date=Sun Mar 10 22:06:58 MSK 2019, title='Grapevine', artist='Tiësto'}
System.out.println(tracks.get(0));
其中 TrackInfo
是:
class TrackInfo {
private Date date;
private String title, artist;
public TrackInfo(Date date, String title, String artist) {
this.date = date;
this.title = title;
this.artist = artist;
}
@Override
public String toString() {
return "TrackInfo{" +
"date=" + date +
", title='" + title + '\'' +
", artist='" + artist + '\'' +
'}';
}
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getArtist() {
return artist;
}
public void setArtist(String artist) {
this.artist = artist;
}
}
因此您可以找到在任何时间间隔播放的歌曲。
我正在尝试为以下网站实施广播应用程序: http://www.c895.org/mp3/
该网站使用 SGPlayer 显示艺术家和歌曲名称。我可以检索该信息,但无法找到可以访问以前播放曲目的位置。
我已经在 Chrome 中使用 Google 开发人员工具尝试查找 API 链接或 JSON 数据,但我找不到位置该播放列表信息已保存。
我应该继续寻找数据,还是应该在我的 Android 应用程序中实施一种根据网站上显示的内容提供数据的方法?
我想过使用AsyncTasks通过后端高效加载数据。
任何想法、想法和意见都有很大帮助!
您的播放列表在那里可用:https://www.c895.org/playlist/
我认为页面的解析比使用私有API更好。 为此,您可以使用 JSOUP.
此站点的示例:
String url = "https://www.c895.org/playlist/";
Document document = Jsoup.connect(url).get();
Element playlist = document.select("#playlist").first();
List<TrackInfo> tracks = new ArrayList<>();
for (Element track : playlist.children()) {
long time = Long.parseLong(track.dataset().get("ts"));
String title = track.select(".title").first().text();
String artist = track.select(".artist").first().text();
// `time * 1000` because `java.util.Date` requires milliseconds
// but `time` (`data-ts`) is a count of seconds
tracks.add(new TrackInfo(new Date(time * 1000), title, artist));
}
// example output:
// TrackInfo{date=Sun Mar 10 22:06:58 MSK 2019, title='Grapevine', artist='Tiësto'}
System.out.println(tracks.get(0));
其中 TrackInfo
是:
class TrackInfo {
private Date date;
private String title, artist;
public TrackInfo(Date date, String title, String artist) {
this.date = date;
this.title = title;
this.artist = artist;
}
@Override
public String toString() {
return "TrackInfo{" +
"date=" + date +
", title='" + title + '\'' +
", artist='" + artist + '\'' +
'}';
}
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getArtist() {
return artist;
}
public void setArtist(String artist) {
this.artist = artist;
}
}
因此您可以找到在任何时间间隔播放的歌曲。