Java爬虫——爬取页面图片

2018-12-10 16:42:18  卢浮宫  版权声明:本文为站长原创文章,转载请写明出处


一、基础介绍:

    爬虫-又名网页追逐者,广泛应用与数据采集和分析中,我们可以使用它来获取页面中的指定资源(比如:图片,标题,某些指定数据等)。


二、相关知识:

    使用爬虫,我们需要掌握的知识有:页面元素分析能力、http网络请求知识、正则表达式...(这些知识也会在以后的文章中一一进行详细讲述的。)


三、先把代码贴出来,如下:


public class Crawler {
public static void main(String[] args) throws MalformedURLException, IOException {
String url = "http://588ku.com/?h=bd&sem=1";
List arrL = new ArrayList();
URLConnection uc = new URL(url).openConnection();
uc.setConnectTimeout(10000);
uc.setDoOutput(true);

InputStream in = new BufferedInputStream(uc.getInputStream());
Reader rd = new InputStreamReader(in);
int c = 0;
StringBuffer temp = new StringBuffer();
while ((c = rd.read()) != -1) {
temp.append((char) c);
}
in.close();
String strHtml = temp.toString();
//System.out.println(strHtml);
Pattern p = Pattern.compile("<img[^>]*srcs*=s*("|")?([^"" >]+(.jpg|.bmp|.eps|.gif| .mif|.miff|.png|.tif|.tiff|.svg|.wmf|.jpe|.jpeg|.dib|.ico|.tga|.cut|.pic))[^>]*>", Pattern.CASE_INSENSITIVE);
Matcher m = p.matcher(strHtml );
String quote,src = "";
while (m.find()) {
quote = m.group(1);
src = (quote == null || quote.trim().length() == 0) ? m.group(2).split("s+")[0] : m.group(2);
arrL.add(src);
}
for (Object sstr : arrL) {
System.out.println(sstr);
}
}
}


四、代码解析部分

    ①首先我们设置了一个固定的url地址,然后使用URLConnection新建并打开该链接。

    ②后面就是抓取到网页元素并筛选了。这里我们使用字节流读取页面元素到创建好的字符变量中(使用完后一定要记得关闭哦)。

    ③后面就是正则表达式的一些操作了,这里是关于图片的适配规则(正则表达式是一个很重要的知识点的,一定不能忽视!)。

    ④输出筛选过后的数据,这里是用了一个list集合来进行存放的,后面的for循环则是输出部分了。


五、运行结果如下:

        Java爬虫——爬取页面图片(持续更新中)


        PS:这里只是简单的一个示例,其实我们使用爬虫可以做很多操作的,后续也会对该部分代码进行改造,输出并保存为图片,请持续关注!




更多精彩请关注guangmuhua.com


最新评论: