当前位置: 首页 > 面试题库 >

需要从HTML页面解析图像src,然后显示它

陆甫
2023-03-14
问题内容

我目前正在尝试开发一个应用程序,使其访问以下网站(http://lulpix.com)并解析HTML,并从以下部分获取img src

<div class="pic rounded-8" style="overflow:hidden;"><div style="margin:0 0 36px 0;overflow:hidden;border:none;height:474px;"><img src="**http://lulpix.com/images/2012/April/13/4f883cdde3591.jpg**" alt="All clogged up" title="All clogged up" width="319"/></div></div>

当然,每次加载页面时它都会有所不同,因此,例如,我无法将直接URL分配给我打算做的异步图像库

加载页面 >解析img src>下载Async到imageview>重新加载lulpix.com>重新开始

然后将它们分别放置在图像视图中,用户可以从中向左或向右滑动来浏览。

因此,它的TL; DR是,我如何解析html来检索URL,并让任何人有使用显示图像的库的任何经验。

非常感谢。


问题答案:

这是一个连接到lulpix的AsyncTask,伪造了引荐来源网址和用户代理(lulpix显然通过一些相当la脚的检查来阻止抓取)。开始于您的Activity

new ForTheLulz().execute();

结果Bitmap以相当la脚的方式下载(不进行缓存或检查图像是否已经DL:ed)并且错误处理总体上不存在-但是基本概念应该可以。

class ForTheLulz extends AsyncTask<Void, Void, Bitmap> {
        @Override
        protected Bitmap doInBackground(Void... args) {
            Bitmap result = null;
            try {
                Document doc = Jsoup.connect("http://lulpix.com")
                        .referrer("http://www.google.com")
                        .userAgent("Mozilla/5.0 (Windows; U; WindowsNT 5.1; en-US; rv1.8.1.6) Gecko/20070725 Firefox/2.0.0.6")
                        .get();
                        //parse("http://lulpix.com");
                if (doc != null) {
                    Elements elems = doc.getElementsByAttributeValue("class", "pic rounded-8");
                    if (elems != null && !elems.isEmpty()) {
                        Element elem = elems.first();
                        elems = elem.getElementsByTag("img");
                        if (elems != null && !elems.isEmpty()) {
                            elem = elems.first();
                            String src = elem.attr("src");
                            if (src != null) {
                                    URL url = new URL(src);
                                    // Just assuming that "src" isn't a relative URL is probably stupid.
                                    InputStream is = url.openStream();
                                    try {
                                        result = BitmapFactory.decodeStream(is);
                                    } finally {
                                        is.close();
                                    }
                            }
                        }
                    }
                }
            } catch (IOException e) {
                // Error handling goes here
            }
            return result;
        }
        @Override
        protected void onPostExecute(Bitmap result) {
            ImageView lulz = (ImageView) findViewById(R.id.lulpix);
            if (result != null) {
                lulz.setImageBitmap(result);
            } else {
                //Your fallback drawable resource goes here
                //lulz.setImageResource(R.drawable.nolulzwherehad);
            }
        }
    }


 类似资料:
  • 我试图显示与Html文件位于同一文件夹中的静态图像,但似乎无法获得正确显示的正确路径。我正在开发的应用程序还包括一个从数据库获取数据的java后端,我使用HTML和javascript在前端显示它,整个应用程序作为插件在Web服务器上运行。图像和Html文件都位于此处: Web应用程序的URL路径是: <代码>https://staging.com/jira/secure/SchedulerAct

  • 我试过不同的浏览器,有没有使用%20,但我知道使用%20才是正确的方法。(实际上,这两种浏览器都可以使用) 我知道图像只会在托管它的机器上可见,这不是问题。

  • 我用过< code > holder . txt title . settext(html compat . from html(datalist . get description(),0)); HtmlCompat.fromHtml移除了标记,但没有显示图像 我得到了这样的东西 如何显示整个图像而不是框?因为 HtmlCompat.fromHtml 不起作用。 提前致谢 HTML文本(来自AP

  • 我试图通过一个图像的文件名并呈现在模板上虽然我通过它的实际名称不显示在页面上 例如:profilepic_filename=/data/tim/img.jpg我已经试过了 而且我也尝试过 这两个都不管用

  • 我的飞行名单。html 用于url映射的控制器类 飞行等级 我正在传递到我的以在html表中显示该列表中的数据,但当我加载该页面时,我得到 idk为什么当我在控制台(doing System.out.println)的列表中显示数据时,它无法解析数据如果有人有任何建议或可能有什么问题,它将非常有用 使现代化 错误堆栈:https://pastebin.com/hT6b3WEX

  • 问题内容: 我有一个小问题。我想要一个可以上传和显示图像的Django应用。目前,它可以上传图片,但我无法显示该图片。 因此,例如{{comment.photo}}将打印出path 。但我想在屏幕上看到该图像。不是路径。如何将图像打印到屏幕上? 这里有一些信息可能会有所帮助。 models.py views.py home.html form.html 问题答案: 有关如何正确上传图像的信息,请参