这是一个爬虫简单示例:到网络中获取指定规则的数据
像贴吧、天涯里面的留邮箱发资料的帖子里面有很多号码、邮箱。就可以通过这个程序获取显示到控制台
通过传一个url地址,程序将获取网页里面的所有邮箱。 如果要获取电话号码,将正则表达式改动一下就可以
public class NetSpider {
public static void main(String[] args) throws IOException {
String reg = "\\w+@\\w+(\\.\\w+)+";
HashSet<String> set = getNetMail(reg); //set集合没有重复元素
for(String m: set)
System.out.println(m);
}
</pre><pre name="code" class="java">
private static HashSet<String> getNetMail(String regs) throws IOException {
String str_url ="http://bbs.tianya.cn/post-enterprise-401802-5.shtml";
URL url = new URL(str_url);
URLConnection conn = url.openConnection();
InputStream in = conn.getInputStream();
BufferedReader buf = new BufferedReader(new InputStreamReader(in));
String line =null;
Pattern p = Pattern.compile(regs); //将字符串的正则式编译成Pattern正则对象
HashSet<String> set = new HashSet<String>();
while((line=buf.readLine())!=null){
Matcher m =p.matcher(line); // 通过Matcher对象将正则表达式规则作用到字符串上
while(m.find()){ // //查找符合规则的子串
set.add(m.group()); // //获取匹配后的结果<span style="white-space:pre"> </span>
}
}
buf.close();
return set;
}