简易爬虫实现校园网剩余流量查询

学校公众号要用爬虫查询校园网流量,记录一下实现这个简易爬虫的过程。


开发工具:

Eclipse,Chrome/Firefox

第三方库”:

jsoup:用来解析网页数据,用法传送门:http://www.open-open.com/jsoup/,HttpClient用来连接web页面,模拟get和post请求




Step 1:明确目标

简单的理解爬虫的过程就是模拟网页操作的过程,GET网页数据,POST数据请求的模拟。

So,第一部先明确查询校园网流量的步骤:

1:确认目标网页:http://zyzfw.xidian.edu.cn/     我们查询校园网流量用户登录界面

        2:输入 学号,密码,验证码,作为post的数据,然后点击登录

3:登录后转向页面地址:http://zyzfw.xidian.edu.cn/home/base/index   流量信息查询页面

4:记录所查看到的流量信息





Step 2:java编程


java文件列表

HttpClientManager.java:           获取一个HttpClient的单例,通过这个单例来连接网站


HttpOperate.java:                 HttpClient相关网络请求的函数

1,获取网页cookies信息与验证码的GET方法;

2,账户登录POST请求方法;

3,获取登录后网页中流量信息的get方法。


DocHandle.java   :           对通过jsoup库获得到的网页的html源码的document类进行分析处理获取网页内容并保存

1,获取网页错误信息方法,

2,获取流量信息方法,

3,获取令牌token方法,

4,验证码获取分析方法


ImageOP.java        根据url和cookies下载验证码图片


NetConstans.java          网址等常量


PictureOperate.java          对下载来的验证码图片进行操作

1,读取图片方法(返回int[][]二维数组);

2,裁剪图片方法(使得验证码图片的4个数字变成4张图片可以单独处理);

3,保存图片方法

4,简单的识别图片数字方法


UserInfo.java         用户信息的保存

1,用户基本信息

2,cookies信息

3,图片路径信息

4,令牌信息

5,流量信息

6,错误信息


MainRunning.java          主程序


MainRunning.java

public class MainRunning {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		HttpClientManager.init();

		UserInfo user = new UserInfo("0000000001","000000001");
		if(user.getUserName().equals(""))
		{
			System.out.println("输入用户名");
		}
		//login
		boolean loginOk=false;
		int cc=0;
		do{
			cc++;
			if(cc>5)
			{
				System.out.println("login error!tyr late.");
				break;
			}
			if(HttpOperate.getLoginInfo(user)){
				loginOk=HttpOperate.loginFlowQuery(user);
				if(!loginOk&&!user.codeError.equals("")){
					System.out.println(user.userError);
					break;
				}
			}
			else{
				System.out.println("getLoginInfo error!!");
				break;
			}
			
		}while(!loginOk);
		if(loginOk&&HttpOperate.getFlowInfo(user)){
			user.printFlowInfo();
		}
		else{
			System.out.println("get FlowInfo error!");
		}
	

		
		
	}

}</span>

从Main方法中可以发现,逻辑十分的简单:

1,初始化:


                
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值