Skip to content

A nodejs-spider that gets the infomation of empty classrooms in BUPT

Notifications You must be signed in to change notification settings

BUPT-HJM/buptclass

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 

Repository files navigation

buptclass-spider

这是一个爬取北邮本部空闲自习室的爬虫。 欢迎fork、star~ 欢迎pull request~

个人博客爬虫介绍:http://bupt-hjm.github.io/2016/05/29/buptclass/

2016-06-02 代码更新

  • 新增spider2.js
  • 新增两个函数处理合并原先数据,优化spider1.js生成的数据冗余量过大的问题
  • 使用方法没有变化,支持的网站同步更新展现形式

原本

#### 优化后


使用方法:

第一步:安装依赖与所需支持

git clone后安装依赖npm install 由于涉及到node-tesseractgm,验证码识别与图像处理,还需要本地安装

下面是我整理的关于它们的链接

Tesseract 开源的 OCR 识别工具

graphicsmagick 图像处理工具

第二步: 添加配置信息

如果不打算用mongodb,可以把spider.js里的相关mongo删去或者不予理会(会抛出error不影响程序运行写入json)

下列配置在spider.js

//爬虫初始配置(教务系统登录的学号和密码必填)
var url="http://jwxt.bupt.edu.cn";//登录的链接
var db = monk('localhost/byr');//连接本地数据库
var sno = "*********";//此处输入学号
var password = "*********";//此处输入密码
//时间配置
var rule = new schedule.RecurrenceRule();
rule.hour = 10;
rule.minute = 0;
//(默认每天十点)
//时间配置也可不予理会,node一次程序会一开始就打开程序运行一次,之后才是看schedule

第三步: 运行程序

node spider.js

关于报错信息

{ [Error: Cannot find module '../build/Release/bson'] code: 'MODULE_NOT_FOUND' }
js-bson: Failed to load c++ bson extension, using pure JS version

报这个错可以参看Automattic/mongoose#2285 可以不予理会

{ [Error: socket hang up] code: 'ECONNRESET', response: undefined }

程序到识别出验证码后,没有出现登录成功,程序不运行,可等待一会即会报上面这个错,检查学号和密码是否输入正确


后期优化:

  • 优化代码风格,减少代码冗余
  • 更优雅地解决异步回调问题

关于该爬虫支持的网站

网站访问地址:

http://buptclass.com/

网站截图(pc端效果):

网站截图(手机端效果):

About

A nodejs-spider that gets the infomation of empty classrooms in BUPT

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published