我正在使用Jsoup从这个意大利网站上抓取一系列图片
在带有Jsoup的AsyncTask中,我从HTML中获取了图像的所有网址:
@Override
protected Void doInBackground(String... params) {
Document doc;
try {
ConnectivityManager conMgr = (ConnectivityManager) mActivity
.getSystemService(Context.CONNECTIVITY_SERVICE);
if (conMgr.getActiveNetworkInfo() != null
&& conMgr.getActiveNetworkInfo().isAvailable()
&& conMgr.getActiveNetworkInfo().isConnected()) {
doc = Jsoup
.connect(urlReceivedToConnect)
.timeout(0).get();
Elements imgList = doc.getElementsByClass("phocagallery-box-file-third").select("img");
photoList = new ArrayList<String>();
ListIterator<Element> post = imgList.listIterator();
while (post.hasNext()) {
photoList.add(post.next().attr("abs:src"));
}
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
然后,在一个costumized适配器中,我正在使用这个urlsList,我正在加载我之后放入gridView的url中的图像:
private Drawable LoadImageFromURL(String url) {
try {
InputStream is = (InputStream) new URL(url).getContent();
Drawable d = Drawable.createFromStream(is, "src");
return d;
} catch (Exception e) {
System.out.println(e);
return null;
}
}
问题是:某些图片显示正常,但其他一些图片显示此错误:
06-23 10:06:06.930:I / System.out(493):java.io.FileNotFoundException:http://www.italiaebraica.org/images/phocagallery/famiglia_levi/thumbs/phoca_thumb_m_Famiglia Levi 024.jpg
有什么问题?如何以正确的方式获得所有图片? 请帮忙, 希望很清楚, 我是初级开发人员!
答案 0 :(得分:0)
java.io.FileNotFoundException:
非常明显。打印出网址,以便您可以看到导致异常的网址。调试不应该花太长时间。
我不知道什么图像存在,什么不存在,所以你就是那个必须弄明白的人。
答案 1 :(得分:0)
错误是URL中有空格。大多数浏览器都会检测是否有空格并将其替换为%20,这样您就不会在浏览器中收到任何错误。所以我建议使用:
private Drawable LoadImageFromURL(String url) {
if(url.contains(" ")){
url.replace(" ", "%20");
}
try {
InputStream is = (InputStream) new URL(url).getContent();
Drawable d = Drawable.createFromStream(is, "src");
return d;
} catch (Exception e) {
System.out.println(e);
return null;
}
}