湖南工业大学电费数据抓取(完美校园版)
前言
之前写了一篇我们学校电费查询数据获取的博客,那篇文章的数据源是工大助手,因为工大助手对参数进行了一些加密,所以要获取到数据必须要进行破解,这样难度就增加了很多,今天我要爬的是完美校园网站的,这个软件非常开放,就是经常无法访问,首先这个网站所有有关查询电费的接口都是GET请求,其次所有请求都没有身份检查,所以这次的爬虫程序非常简单,就按顺序访问几个接口就可以轻松拿到数据了。我把这个功能已经集成到我的小程序和安卓应用中去了
准备
首先将手机和电脑放到同一个局域网,然后打开电脑端的fiddler工具,然后将手机的代理服务器设置成电脑的ip , 端口写8888 , 设置好以后用手机访问 http://电脑ip:8888 , 里面有两个链接,其中一个是下载证书的链接 , 将证书下载下来导入手机 , 现在手机上所有http协议和https协议的数据包都会经过电脑了 , fiddler就可以实现对手机抓包了
开始
首先打完美校园充电费的界面,点击请选择房间,这个时候到fiddler中去看就会返现发送了好几个请求
http://h5cloud.17wanxiao.com:8080//CloudPayment/user/getRoom.do?payProId=1567&schoolcode=786&optype=1&areaid=0&buildid=0&unitid=0&levelid=0&businesstype=2
结果
{"code":"SUCCESS","msg":"获取房间信息成功","roomlist":[{"id":"1016","name":"东校区","factorycode":null},{"id":"4","name":"西校区","factorycode":null}]}
其中这个请求是下面要用到的,这个请求是获取校区代号的
然后在完美校园中任意选择一个校区(我这里选择河西校区) , 继续去找数据包
http://h5cloud.17wanxiao.com:8080/CloudPayment/user/getRoom.do?payProId=1567&schoolcode=786&optype=2&areaid=4&buildid=0&unitid=0&levelid=0&businesstype=2
结果
{"code":"SUCCESS","msg":"获取房间信息成功","roomlist":[{"id":"618","name":"1栋1层商业门面","factorycode":null},{"id":"598","name":"21栋宾馆及门面电表","factorycode":null},{"id":"604","name":"22栋1层住户及门面","factorycode":null},{"id":"612","name":"23栋1层住户及门面","factorycode":null},{"id":"620","name":"2栋1层商业门面","factorycode":null},{"id":"622","name":"2食堂商业门面","factorycode":null},{"id":"20","name":"第五食堂门面","factorycode":null},{"id":"986","name":"青年公寓","factorycode":null},{"id":"400","name":"学生公寓10栋","factorycode":null},{"id":"416","name":"学生公寓11栋","factorycode":null},{"id":"464","name":"学生公寓12栋","factorycode":null},{"id":"508","name":"学生公寓13栋","factorycode":null},{"id":"528","name":"学生公寓14栋","factorycode":null},{"id":"542","name":"学生公寓15栋","factorycode":null},{"id":"414","name":"学生公寓16栋","factorycode":null},{"id":"436","name":"学生公寓17栋","factorycode":null},{"id":"456","name":"学生公寓18栋","factorycode":null},{"id":"478","name":"学生公寓19栋","factorycode":null},{"id":"274","name":"学生公寓1栋","factorycode":null},{"id":"496","name":"学生公寓20栋","factorycode":null},{"id":"170","name":"学生公寓21栋","factorycode":null},{"id":"172","name":"学生公寓22栋","factorycode":null},{"id":"174","name":"学生公寓23栋","factorycode":null},{"id":"100","name":"学生公寓24栋","factorycode":null},{"id":"114","name":"学生公寓25栋","factorycode":null},{"id":"128","name":"学生公寓26栋","factorycode":null},{"id":"176","name":"学生公寓27栋","factorycode":null},{"id":"130","name":"学生公寓28栋","factorycode":null},{"id":"132","name":"学生公寓29栋","factorycode":null},{"id":"288","name":"学生公寓2栋","factorycode":null},{"id":"232","name":"学生公寓30栋","factorycode":null},{"id":"246","name":"学生公寓31栋","factorycode":null},{"id":"260","name":"学生公寓32栋","factorycode":null},{"id":"556","name":"学生公寓33栋","factorycode":null},{"id":"570","name":"学生公寓34栋","factorycode":null},{"id":"584","name":"学生公寓35栋","factorycode":null},{"id":"302","name":"学生公寓3栋","factorycode":null},{"id":"316","name":"学生公寓4栋","factorycode":null},{"id":"330","name":"学生公寓5栋","factorycode":null},{"id":"344","name":"学生公寓6栋","factorycode":null},{"id":"358","name":"学生公寓7栋","factorycode":null},{"id":"372","name":"学生公寓8栋","factorycode":null},{"id":"386","name":"学生公寓9栋","factorycode":null},{"id":"1122","name":"学生宿舍36栋","factorycode":null},{"id":"1124","name":"学生宿舍37栋","factorycode":null},{"id":"1126","name":"学生宿舍38栋","factorycode":null}]}
这个接口他的作用是获取楼栋信息,其中接口中areaid参数表示上一个请求中的校区代号,然后选择楼栋继续抓包,
http://h5cloud.17wanxiao.com:8080/CloudPayment/user/getRoom.do?payProId=1567&schoolcode=786&optype=4&areaid=4&buildid=246&unitid=0&levelid=-1&businesstype=2
这个请求时获取房间号和房间id的,这里结果就不贴了(数据太多了),这个请求中buildid参数就是上个请求中的id, 继续选择房间号然后抓包
http://h5cloud.17wanxiao.com:8080/CloudPayment/user/getRoomState.do?payProId=1888&schoolcode=786&businesstype=2&roomverify=4-246-254--2204
结果
{"returncode":"100","returnmsg":"SUCCESS","quantity":"324.82","quantityunit":"度","canbuy":"true","description":"412"}
这个请求就是真正的电费接口了,这个接口中roomverify就是上个请求中的id,好了整个的电费查询流程就这样,不难发现我们只要有房间号的id和学校的代号就可以获取宿舍的电费了,那么我建议要做电费查询的同学先将学校所有的房间号爬下来存到自己的数据库里,这样我们只要进行最后一个请求就可以获取到电费了,还有就是所有请求中payProId参数最好不要重复,随机一个数就行了,免得爬多了被封
湖南工业大学电费数据抓取(完美校园版)相关推荐
- python爬取app播放的视频,Python爬虫工程师必学——App数据抓取实战视频教程
爬虫分为几大方向,WEB网页数据抓取.APP数据抓取.软件系统数据抓取.本课程主要为同学讲解如何用python实现App数据抓取,课程从开发环境搭建,App爬虫必备利器详解,项目实战,到最后的多App ...
- python实现食品推荐_通过Python语言实现美团美食商家数据抓取
首先,我们先来打开美团美食商家页面,来分析一下. 如上面所提供的URL即为美团美食商家页面.或者我们通过美团官网打开一个美团美食商家页面,打开步骤如下:1.打开浏览器,输入 即可打开美团北京首页 2. ...
- [Python爬虫] 三、数据抓取之Requests HTTP 库
往期内容提要: [Python爬虫] 一.爬虫原理之HTTP和HTTPS的请求与响应 [Python爬虫] 二.爬虫原理之定义.分类.流程与编码格式 一.urllib 模块 所谓网页抓取,就是把URL ...
- 爬虫Spider 05 - 代理参数-proxies | 控制台抓包 | requests.post() | 动态加载数据抓取-Ajax
文章目录 Spider 04回顾 requests.get()参数 常见的反爬机制及处理方式 Spider 05笔记 代理参数-proxies **控制台抓包** **requests.post()参 ...
- java分页抓取数据_网页分页数据抓取的几种方式
相信所有个人网站的站长都有抓取别人数据的经历吧,目前抓取别人网站数据的方式无非两种方式: 一.使用第三方工具,其中最著名的是火车头采集器,在此不做介绍. 二.自己写程序抓取,这种方式要求站长自己写程序 ...
- RPA机器人数据抓取典型案例全流程详解
数据抓取是实现流程自动化最关键的技能之一,尤其是Web数据抓取,但面对每个具体的业务场景和网站,如何稳定.高效地实现数据抓取? 在实战中进行数据抓取时,需要注意哪些问题? 这篇文章我们就来通过一个企查 ...
- 掘金站内用户和文章排行分析 | 数据抓取和排序实现
文章教你如何做掘金站内数据抓取,数据解析,最后形成排序后的排名. 项目起因是我突然想看看掘金站内有哪些优质作者,为了不错过每一个大佬,我选择直接抓取站内所有的文章信息找到作者并进行排名.各位关注 + ...
- Python学习笔记——爬虫原理与Requests数据抓取
目录 为什么要做网络爬虫? 通用爬虫和聚焦爬虫 HTTP和HTTPS 客户端HTTP请求 请求方法 HTTP请求主要分为Get和Post两种方法 常用的请求报头 1. Host (主机和端口号) 2. ...
- 关于Python爬虫原理和数据抓取1.1
为什么要做爬虫? 首先请问:都说现在是"大数据时代",那数据从何而来? 企业产生的用户数据:百度指数.阿里指数.TBI腾讯浏览指数.新浪微博指数 数据平台购买数据:数据堂.国云数据 ...
最新文章
- 使用Selenium爬虫进阶
- 好用的浏览器_“遇见”一个好用的浏览器,功能非常强大到无法想象
- 用Windows Server Backup备份DC服务器
- 对现有的所能找到的DDOS代码(攻击模块)做出一次分析----UDP篇
- 单细胞分析Seurat使用相关的10个问题答疑精选!
- WannaCry反思:传统安全理念遭遇马奇诺防线式溃败
- 统计每个url访问的topN用户以及访问次数(sql)
- Leetcode加一 (java、python3)
- HTML 密码加密方法
- 人脸识别系统 讲解以及环境搭建(Java 附源码)
- MATLAB修改证件照背景
- ==和 equals 的区别
- 接口(interface、implement)
- 全国计算机等级证书和职业资格证书(计算机)哪个好
- Python实现轨迹识别:如何用代码识别物体的运动轨迹
- Word明明有很大空白表格还是自动换页
- 深度硬核,思维导图拯救拖延症患者!
- 小冰与小娜:命运交叉的美少女AI
- java 1f8b0800,常用ASCII/ISO-8859-1/GB2312/GBK/UTF-8等字符编码梳理
- 亚利桑那州立大学周纵苇:研习 U-Net ——现有的分割网络创新 | AI 研习社74期大讲堂...