{"repo":"lndj/Lcrawl","free":true,"listed":false,"github":"https://github.com/lndj/Lcrawl","clone":"git clone https://github.com/lndj/Lcrawl.git","description":"一只优雅的正方教务系统爬虫。","language":"PHP","stars":119,"topics":["crawler","php","zhengfang","grade","exam"],"license":"MIT","category":"scrapers-browser-automation","readme_excerpt":"简介 使用PHP实现正方教务系统爬虫功能。 可能是正方教务系统最优雅的一只爬虫。 安装 使用 composer 进行安装： composer require lndj/lcrawl 要体验最新功能，可以执行： 注意：请先安装 composer Example 在请求过程中，你还可以设置 Referer/Timeout 等 header 信息，直接采用链式调用即可。 会话缓存 在请求过程中，可以启用会话缓存功能，可以有效减少教务系统会话开启数量。 高级用法 为达到在登陆一次后的一段时间内，不需要再次执行登陆操作便可直接获取数据，减少教务网请求量，可以使用会话缓存。 首先，在实例化Lcrawl时，传入第三个参数为 true 。 例如： 第三个参数即表示开启会话缓存。 本项目使用 doctrine/cache 来完成缓存工作，它支持基本目前所有的缓存引擎。 在我们的 Lcrawl 中的所有缓存默认使用文件缓存，缓存路径取决于PHP的临时目录，如果你需要自定义缓存，那么你需要做如下的事情： 你可以参考doctrine/cache官方文档来替换掉应用中默认的缓存配置： 以 redis 为例 请先安装 redis 拓展：https://github.com/phpredis/phpredis 设置登录过程参数 本SDK默认使用的是 ysdx default.aspx 为登陆的 uri 。若要使用其他 uri ，可自行抓包获取登录过程的参数。 在实例化时，传入第四个参数， $loginParam ,数组的key为固定值,value传入抓包过程中 POST body 的字段名即可。 API getAll() 获取所有数据,并发获取 getSchedule() 获取课表数据 getGrade() 获取成绩数据 getCet() 获取四六级数据 getExam() 获取考试安排数据 setX() 类 设置相应 Header 值，例如： setUa()/setTimeout()/setReferer() 等。 getX() 类 Getter. Laravel 中使用 在 Laravel 中框架使用 predis/predis ，那么我们就得使用 Doctrine\\Common\\Cache\\PredisCache ： 上面提到的 app('redis')- connection($name) , 这里的 $name 是 laravel 项目中配置文件 database.php 中 redis 配置名 default ： https://github.com/laravel/laravel/blob/master/config/database.php#L118 如果你使用的其它连接，对应传名称就好了。 License MIT License","default_branch":null,"files":null,"tree":[],"storefront":"/r/lndj","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/lndj/Lcrawl/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}