gpt4 book ai didi

java - Android正则表达式从网站抓取图像url

转载 作者:行者123 更新时间:2023-12-01 04:51:45 24 4
gpt4 key购买 nike

我正在制作一个应用程序,但遇到了这个问题我使用模式识别代码来查找网站上文章的图像 URL。

问题是,以我的方式,它抓取了第一张特别小的照片。

模式 p = Pattern.compile("http://planetaris.gr/media/k2/items/cache .*\.jpg");有一张 XL 图像,我想抓取它的目的地。

我想使用一种模式,在链接末尾它会像这样

模式 p = Pattern.compile("( http://planetaris.gr/media/k2/items/cache.)+ (.*\[_XL]+(.jpg))");

或者模式 p = Pattern.compile("http://planetaris.gr/media/k2/items/cache .*\_XL.jpg");

这就是我需要你帮助的地方这是代码

公共(public)无效运行(){

        //Pattern p = Pattern.compile("http://planetaris.gr/media/k2/items/cache.*\\.jpg");
//Pattern p = Pattern.compile("http://planetaris.gr/media/k2/items/cache.*\\._XL.jpg");
Pattern p = Pattern.compile("(http://planetaris.gr/media/k2/items/cache.)+(.*\\[_XL]+(.jpg))");

try {
URL url = new URL(selectedRssItem.getLink());

URLConnection urlc = url.openConnection();
Log.d("MIMIS_LINK", url.toString());
BufferedInputStream buffer = new BufferedInputStream(urlc.getInputStream());

builder = new StringBuilder();
int byteRead;
while ((byteRead = buffer.read()) != -1)
builder.append((char) byteRead);

buffer.close();

} catch (MalformedURLException ex) {
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
}

Matcher m = p.matcher(builder.toString());


if (m.find()) {

try {
bitmap = BitmapFactory.decodeStream((InputStream)new URL(m.group(0)).getContent());
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

Log.d("MIMIS_MATCHER", selectedRssItem.getDescription().toString());
};

handler.sendEmptyMessage(0);

}
}.start();
}

private Handler handler = new Handler() {

//@SuppressWarnings("null")
@Override
public void handleMessage(Message msg) {

mSpinner.clearAnimation();
mSpinner.setVisibility(View.GONE);
//progressDialog.dismiss();
myimageview.setImageBitmap(bitmap);

if (bitmap==null){

myimageview.setImageResource(R.drawable.aris_no_image);

};
}
};

因为网站上还有一张包含此 XL 的 jpg

这些是给定页面上的所有 .jpg 。

href="/media/k2/items/cache/df95c3d9029788dcdb6f520e9151056c_XL.jpg"

/media/k2/items/cache/df95c3d9029788dcdb6f520e9151056c_L.jpg"

“/images/stories/atnea2.jpg”

/images/stories/diarkeias-bc.jpg"

最佳答案

这个正则表达式:/(media|images)/[^\.]*\.jpg

匹配您的所有样本:

href="/media/k2/items/cache/df95c3d9029788dcdb6f520e9151056c_XL.jpg"/media/k2/items/cache/df95c3d9029788dcdb6f520e9151056c_L.jpg"“/images/stories/atnea2.jpg”/images/stories/diarkeias-bc.jpg"

关于java - Android正则表达式从网站抓取图像url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14849912/

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