c 抓取网页数据(就是Java爬虫--爬取页面图片的内容持续更新中)
优采云 发布时间: 2021-12-27 16:15c 抓取网页数据(就是Java爬虫--爬取页面图片的内容持续更新中)
一、基本介绍:Crawler-也叫webchaser,广泛用于数据的采集
和分析,我们可以用它来获取页面上的指定资源(如:图片、标题、某些指定数据等)。 )。
二、相关知识:使用爬虫需要掌握以下知识:页面元素分析能力、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("]*\\bsrc\\b\\s*=\\s*('|\")?([^'\"\n\r\f>]+(\\.jpg|\\.bmp|\\.eps|\\.gif|\\.mif|\\.miff|\\.png|\\.tif|\\.tiff|\\.svg|\\.wmf|\\.jpe|\\.jpeg|\\.dib|\\.ico|\\.tga|\\.cut|\\.pic)\\b)[^>]*>", 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创建并打开链接。②下面是抓取网页元素并进行过滤。这里我们使用字节流将页面元素读入创建的字符变量中(使用后一定要记得关闭)。③下面是正则表达式的一些操作,这里是图片的适配规则(正则表达式是一个很重要的知识点,千万不能忽视!)。④ 输出过滤后的数据,这里使用一个列表集合进行存储,下面的for循环是输出部分。
五、运行结果如下:
输出接口
PS:这只是一个简单的例子。其实我们可以用爬虫来做很多操作。以后我们也会修改这部分代码,输出保存为图片,请继续关注!
五、 以上是Java爬虫抓取页面图片的内容,请订阅关注,持续更新。纯手工打架,如有不当,敬请指正。也希望在对大家有影响的同时多多关注交流!