C/S ( Client/Server ) 客户端和服务端的特点
1、客户端和服务端的软件都需要程序员进行编写。2、客户端维护起来较为麻烦。
3、客户端的存在可以将一部分运算分离到客户端来运行,减轻了服务器端的压力。
B/S ( Browse/Server ) 浏览器和服务端的特点
1、客户端不用程序员编写,直接使用系统中具备的浏览器软件作为客户端即可。程序员只需要编写服务器端就OK了。
2、维护起来也很容易,因为只要维护服务器即可。
3、所有的运算都在服务器端,相对压力较大。
最简单的网络爬虫
其实就是 通过 URL 统一资源定位符,定位资源目的,然后遍历资源信息,把我们需要的资料提取出来。这里就演示提取我们学校官网的中 所有的邮箱。
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* 2018年5月12日 下午5:55:26
* @author <a href="mailto:447441478@qq.com">宋进宇</a>
* 网络爬虫原理
* 演示 获取网络上的邮箱。
*/
public class NetSpiderDemo {
//为了代码简洁 这里就直接抛异常了
public static void main(String[] args) throws IOException {
//获取统一资源定位
//这里 就 爬我们学校官网的 邮箱
URL url = new URL( "http://www.hncu.net" );
//获得输入流
BufferedReader br = new BufferedReader(
new InputStreamReader( url.openStream() ) );
//定义一个正则表达式,爬邮箱---使用最简单的邮箱规则
Pattern p = Pattern.compile( "\\w+@\\w+(\\.\\w+)+" );
String str = br.readLine();
while ( str != null ) {
//进行匹配
Matcher matcher = p.matcher( str );
//如果有找到就把邮箱打印在控制台
while ( matcher.find() ){
System.out.println( matcher.group() );
}
str = br.readLine();
}
br.close();
}
}