gpt4 book ai didi

java - 需要从HTML页面解析图片src然后显示

转载 作者:行者123 更新时间:2023-11-29 06:00:51 25 4
gpt4 key购买 nike

我目前正在尝试开发一个应用程序,它可以访问以下站点 (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 > 重新开始

然后将每一个都放在一个 ImageView 中,用户可以从中左右滑动来浏览。

所以 TL;DR 是,我如何解析 html 以检索 URL 以及是否有人对显示图像的库有任何经验。

非常感谢。

最佳答案

这是一个连接到 lulpix 的 AsyncTask,它伪造了一个 referrer 和用户代理(lulpix 显然试图通过一些非常蹩脚的检查来阻止抓取)。在您的 Activity 中这样开始:

new ForTheLulz().execute();

生成的 Bitmap 以一种非常蹩脚的方式下载(没有缓存或检查图像是否已经 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);
}
}
}

关于java - 需要从HTML页面解析图片src然后显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10153709/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com