follow大神教程——实践java爬虫之一

step 1、抓取搜狗首页logo(无奈百度新首页已被玩坏)

import java.io.*;
import java.net.*;
import java.util.regex.*;

public class Javaspider {
	static String SendGet(String url) {
		// 定义一个字符串用来存储网页内容
		String result = "";
		// 定义一个缓冲字符输入流
		BufferedReader in = null;

		try {
			// 将string转成url对象
			URL realUrl = new URL(url);
			// 初始化一个链接到那个url的连接
			URLConnection connection = realUrl.openConnection();
			// 开始实际的连接
			connection.connect();
			// 初始化 BufferedReader输入流来读取URL的响应
			in = new BufferedReader(new InputStreamReader(
					connection.getInputStream(),"utf-8"));//指定编码方式
			// 用来临时存储抓取到的每一行的数据
			String line;
			while ((line = in.readLine()) != null) {
				// 遍历抓取到的每一行并将其存储到result里面
				result += line;
			}
		} catch (Exception e) {
			System.out.println("发送GET请求出现异常!" + e);
			e.printStackTrace();
		}
		// 使用finally来关闭输入流
		finally {
			try {
				if (in != null) {
					in.close();
				}
			} catch (Exception e2) {
				e2.printStackTrace();
			}
		}
		return result;

	}

	static String RegexString(String targetStr, String patternStr) {
		// 定义一个样式模板,此中使用正则表达式,括号中是要抓的内容
		// 相当于埋好了陷阱匹配的地方就会掉下去
		Pattern pattern = Pattern.compile(patternStr);
		// 定义一个matcher用来做匹配
		Matcher matcher = pattern.matcher(targetStr);
		// 如果找到了
		if (matcher.find()) {
			// 打印出结果
			return matcher.group(1);
		}
		return "Nothing";
	}

	public static void main(String[] args) {

		// 定义即将访问的链接
		String url = "http://www.sogou.com";  
		// 访问链接并获取页面内容
		String result = SendGet(url);
		// 使用正则匹配图片的src内容
		String imgSrc = RegexString(result, "src=\"(.+?)\"");
		// 打印结果
		System.out.println(imgSrc);
	}
}

运行结果:

http://www.sogou.com/images/logo/new/sogou.png

sogou审查元素中有这句<img src="http://www.sogou.com/images/logo/new/sogou.png" width="400" height="150" alt="">

源文件之中src开头的语句挺多的,不知道src=\"(.+?)\"是怎么匹配到这个结果的。。。【还得深入看看正则表达式】



你可能感兴趣的:(follow大神教程——实践java爬虫之一)