java - Android/Java : Html scraping, 正则表达式 Spotify 专辑封面

标签 java android html regex web-scraping

我正在开发一个项目,需要我从 open.spotify 抓取专辑封面的图像链接

示例:http://open.spotify.com/track/296mPMQavmf1vvxYrUvLN8

在此示例中,我正在寻找此标签:<img id="cover-art" src="http://o.scdn.co/image/ff3874d40abf6e6e7763e39bdb2003cf503cba10">

作为正则表达式的输出,我想要这样:http://o.scdn.co/image/ff3874d40abf6e6e7763e39bdb2003cf503cba10

我已经尝试让它工作一段时间了,但我的解决方案总是需要超过 2-3 个步骤。我仍在学习正则表达式,无法理解如何解决这个问题。

任何建议表示赞赏。

最佳答案

通常您不应该使用正则表达式来解析 HTML。尝试使用JSoup相反 - 它更实用一些。

去获取 jsoup JAR,将其添加到您的项目中并执行如下操作:

class SpotifyTask extends AsyncTask<String, Void, List<String>> {
    @Override
    protected List<String> doInBackground(String... params) {
        ArrayList<String> res = new ArrayList<String>();
        try {
            Document doc = Jsoup.connect(params[0]).get();
            // CSS-style selectors are your new best friend when scraping!
            Elements coverArts = doc.select("img[id=cover-art]");
            for (Element coverArt : coverArts) {
                String url = coverArt.absUrl("src");
                if (!TextUtils.isEmpty(url)) {
                    res.add(url);
                }
            }
        } catch (IOException e) {
            Log.w(TAG, "Error processing document", e);
        }
        return res;
    }
    @Override
    protected void onPostExecute(List<String> result) {
        Log.i(TAG, "Do something with your links: " + result);
    }
}

在您的 Activity 中像这样启动它:

new SpotifyTask().execute("http://open.spotify.com/track/296mPMQavmf1vvxYrUvLN8");

关于java - Android/Java : Html scraping, 正则表达式 Spotify 专辑封面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10697134/

相关文章:

java - 为struts radio的 "disabled"参数设置一个动态值

java - 返回一个空字符串

java - 用 Picasso 叠加图像

android - sdk platform-tools 版本(26.0.2)太旧,无法检查用API 27编译的API;请更新

javascript - 如何在所有类型的浏览器中禁用 HTML 5 Video Player 全屏按钮,尤其是在 IE、Edge 和 Firefox、Opera、Safari 中?

java - 线程;创建一个单独的线程来定期做某事

java - 如何用jenkins部署java项目

android - 错误 : Gradle DSL method not found: 'google()'

html - CSS中背景位置的正确距离

php - HTML 邮件显示空白消息