捕获URL中的所有图像并移至幻灯片

时间:2018-06-17 15:44:09

标签: java android

我试图从网上获取来自网上存储库的多张图片,但我不知道从哪里开始。我将用Picasso创建幻灯片,但从那里我不知道如何从链接中提取所有图像。

一个例子是该页面上的所有图像:http://www.readmangaonline.org/manga/one-piece/902/1

1 个答案:

答案 0 :(得分:2)

您可以使用JSoup从网页中删除图片。

要在Android上使用JSoup,请将其添加到您的gradle文件

implementation 'org.jsoup:jsoup:1.11.3'

然后创建一个AsyncTask来获取网页内容

class ImageScrapAsyncTask extends AsyncTask<String, Void, Document> {

    @Override
    protected Document doInBackground(String... urls) {
        try {
            return Jsoup.connect(urls[0]).get();
        } catch (IOException e) {
            e.printStackTrace();
            return null;
        }
    }

    @Override
    protected void onPostExecute(Document document) {
        if (document != null) {
            Elements imgElements = document.select("img");
            List<String> images = new ArrayList<>();
            for (Element element : imgElements) {
                String image = element.attr("data-src");
                /*Note data-src is used instead of src, as example 
                you provided uses lazy loading and has image file 
                url inside data-src attribute. You may need to use 
                src for other pages. */
                Log.d("IMAGE_URL", image);
                images.add(image);
            }
        }
    }
}

您可以将AsyncTask启动为

String url = "http://www.readmangaonline.org/manga/one-piece/902/1";
new ImageScrapAsyncTask().execute(url);

现在,您在AsyncTask的onPostExecute中的images列表中有图像网址列表。