哈哈,以神之名召唤尔等(正则网络爬虫)

package 我的虫子;

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

public class Chongzi {
	public static void main(String[] args) throws Exception {
		File fi=new File("f:\\1.txt");
		String str="";
		BufferedWriter buw=new BufferedWriter(new FileWriter(fi,true));
		for(int i=1;i<1000;i++){
			String haha="";
			String regx1="[\\<][/][a][\\>][\\<][\"][\\>]";
			//关注贴吧查看贴吧排名页复制网址替代URL
			URL u=new URL("http://tieba.baidu.com/f/like/furank?kw=java&pn="+i);
			BufferedReader bur=new BufferedReader(new InputStreamReader(u.openStream()));
			String regx="[\"][\\>](.){3,20}[\\<][//][a][/>][/<]";
			//获得匹配器
			Pattern p=Pattern.compile(regx);
			//将匹配器传入
			String line=null;
			while((line=bur.readLine())!=null){
				Matcher ma=p.matcher(line);
				while(ma.find()){
					haha=haha+ma.group();
					//去除经过正则后仍然会有的全吧搜索字样
					if(haha.contains("全吧搜索")){
						haha=haha.substring(6, haha.length()-1);
					}					
				}			
			}
			String[] arr1=haha.split(regx1);
			int count=0;
			for(int j=0;j<arr1.length;j++){
				if(arr1[j].contains("</a>\">")){
					arr1[j]=arr1[j].substring(6, arr1[j].length());			
				 }
				if(arr1[j].contains("</a><")){
					arr1[j]=arr1[j].substring(0, arr1[j].length()-5);		
				}	
				//通过设置j>2使得排除每页都会出现的吧主
				if(j>2){
					count++;
					//由于贴吧召唤的限制,故选择每行显示5人
					int a=count%5;
					str=str+" "+"@"+arr1[j];
					if(a==0){
						buw.write(str+"\r\n");
						buw.flush();
						str="";
					}
				}
			}			
		}	
		buw.close();	
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值