{"id":16295989,"url":"https://github.com/bupt-hjm/buptclass","last_synced_at":"2025-10-14T22:32:42.798Z","repository":{"id":79992043,"uuid":"59892618","full_name":"BUPT-HJM/buptclass","owner":"BUPT-HJM","description":"A nodejs-spider that gets the infomation of  empty classrooms in BUPT","archived":false,"fork":false,"pushed_at":"2016-06-01T16:55:09.000Z","size":10,"stargazers_count":33,"open_issues_count":0,"forks_count":10,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-06-12T12:04:50.590Z","etag":null,"topics":["cheerio","node-tesseract","superagent","tesseract-ocr"],"latest_commit_sha":null,"homepage":"http://buptclass.imhjm.com/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BUPT-HJM.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-05-28T12:03:08.000Z","updated_at":"2024-09-02T15:23:47.000Z","dependencies_parsed_at":"2023-07-21T20:10:40.105Z","dependency_job_id":null,"html_url":"https://github.com/BUPT-HJM/buptclass","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/BUPT-HJM/buptclass","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BUPT-HJM%2Fbuptclass","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BUPT-HJM%2Fbuptclass/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BUPT-HJM%2Fbuptclass/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BUPT-HJM%2Fbuptclass/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BUPT-HJM","download_url":"https://codeload.github.com/BUPT-HJM/buptclass/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BUPT-HJM%2Fbuptclass/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279021785,"owners_count":26087056,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-14T02:00:06.444Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cheerio","node-tesseract","superagent","tesseract-ocr"],"created_at":"2024-10-10T20:20:47.383Z","updated_at":"2025-10-14T22:32:42.783Z","avatar_url":"https://github.com/BUPT-HJM.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"## buptclass-spider\n\n这是一个爬取北邮本部空闲自习室的爬虫。\n欢迎fork、star~\n欢迎pull request~\n\n\u003e个人博客爬虫介绍：http://bupt-hjm.github.io/2016/05/29/buptclass/\n\n### 2016-06-02 代码更新\n\n- 新增`spider2.js`\n- 新增两个函数处理合并原先数据,优化`spider1.js`生成的数据冗余量过大的问题\n- 使用方法没有变化，支持的网站同步更新展现形式\n\n#### 原本\n\u003cimg src=\"http://7xp9v5.com1.z0.glb.clouddn.com/json1.PNG\" alt=\"\"\u003e\n#### 优化后\n\u003cimg src=\"http://7xp9v5.com1.z0.glb.clouddn.com/json2.PNG\" alt=\"\"\u003e\n\n---\n\n### 使用方法：\n\n#### 第一步：安装依赖与所需支持\n\n`git clone`后安装依赖`npm install`\n由于涉及到`node-tesseract`和`gm`，验证码识别与图像处理，还需要本地安装\n\n- [node-tesseract](https://github.com/desmondmorris/node-tesseract)\n- [gm](https://github.com/aheckmann/gm),里有官网链接，安装上官网即可\n- [tesseract安装包](http://pan.baidu.com/share/link?uk=4010726052\u0026shareid=4251373560\u0026third=0\u0026adapt=pc\u0026fr=ftw)\n\n\u003e下面是我整理的关于它们的链接\n\n**Tesseract 开源的 OCR 识别工具**\n\n- [Tesseract:安装与命令行使用](http://linusp.github.io/2015/04/17/tesseract-install-usage.html)\n- [node-tesseract](https://github.com/desmondmorris/node-tesseract)\n- [tesseract-ocr 学习笔记](http://www.cnblogs.com/chinanetwind/p/3179513.html)\n- [Tesseract-OCR的下载安装](http://www.51testing.com/html/14/87714-3693118.html)\n\n**graphicsmagick 图像处理工具**\n\n- [gm](https://github.com/aheckmann/gm)\n- [gm文档](http://aheckmann.github.io/gm/)\n\n\n### 第二步： 添加配置信息\n\u003e如果不打算用mongodb，可以把spider.js里的相关mongo删去或者不予理会（会抛出error不影响程序运行写入json）\n\n下列配置在`spider.js`中\n\n```\n//爬虫初始配置(教务系统登录的学号和密码必填)\nvar url=\"http://jwxt.bupt.edu.cn\";//登录的链接\nvar db = monk('localhost/byr');//连接本地数据库\nvar sno = \"*********\";//此处输入学号\nvar password = \"*********\";//此处输入密码\n//时间配置\nvar rule = new schedule.RecurrenceRule();\nrule.hour = 10;\nrule.minute = 0;\n//(默认每天十点)\n//时间配置也可不予理会，node一次程序会一开始就打开程序运行一次，之后才是看schedule\n```\n\n### 第三步： 运行程序\n`node spider.js`\n\n### 关于报错信息\n\n```\n{ [Error: Cannot find module '../build/Release/bson'] code: 'MODULE_NOT_FOUND' }\njs-bson: Failed to load c++ bson extension, using pure JS version\n```\n\n\u003e报这个错可以参看https://github.com/Automattic/mongoose/issues/2285\n可以不予理会\n\n```\n{ [Error: socket hang up] code: 'ECONNRESET', response: undefined }\n```\n\n\u003e程序到识别出验证码后，没有出现登录成功，程序不运行，可等待一会即会报上面这个错，检查学号和密码是否输入正确\n\n\n---\n\n### 后期优化：\n\n- 优化代码风格，减少代码冗余\n- 更优雅地解决异步回调问题\n\n---\n\n### 关于该爬虫支持的网站\n\n#### 网站访问地址：\n\nhttp://buptclass.com/\n\n#### 网站截图(pc端效果)：\n\n\u003cimg src=\"http://7xp9v5.com1.z0.glb.clouddn.com/FireShot%20Capture%2014%20-%20%E5%8C%97%E9%82%AE%E6%9C%AC%E9%83%A8%E8%87%AA%E4%B9%A0%E5%AE%A4%20-%20http___buptclass.com_.png\" alt=\"\"\u003e\n\n#### 网站截图(手机端效果)：\n\n\u003cimg src=\"http://7xp9v5.com1.z0.glb.clouddn.com/mobile.PNG\" alt=\"\"\u003e","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbupt-hjm%2Fbuptclass","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbupt-hjm%2Fbuptclass","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbupt-hjm%2Fbuptclass/lists"}