NovelSpider
爬取小说,练练手。仅供学习交流之用。 可抓取特定小说,并生成 txt 文件,然后生成二维码手机扫描下载小说。Feature
多进程抓取 biquge 小说,存入数据库 将单个小说的所有章节导出为 txt 文件 将文件上传到云端,生成二维码,以便手机下载 txt 文件环境要求
*Unix
环境
redis 服务
PHP >= 7.2
使用
docker 环境
构建镜像docker build . --file ./Dockerfile --tag {your_tagname}
也可以直接拉取我构建好的镜像
docker pull suhanyujie/novel_spider:latest
docker run --name novel_spider -d suhanyujie/novel_spider:latest
安装(install)
前端界面参考 https://github.com/suhanyujie/NovelSpiderFrontend配置
cp env.example .env
在 .env
文件中配置好对应的环境信息
安装 composer 依赖:composer install
运行
启动提供 web 服务的程序,必须到项目根目录运行:php Novel/NovelAdmin/index.php start
启动:./start.sh start
停止:./start.sh stop
功能使用
抓取列表php Novel/NovelSpider/start_list.php start
抓取章节内容 php Novel/NovelSpider/start_detail.php start
将小说导出为 txt 文件:php Novel/Consoles/index.php novel:exportTxt 10
,其中 10 是小说id
通过二维码下载小说:php Novel/Consoles/index.php novel:uploadToCloud 10
,其中 10 是小说id
一些注意事项
更新 workerman 的软件包composer update workerman/workerman
composer 镜像源
可以先把 composer.lock 文件删除,配置阿里的镜像源composer config repo.packagist composer https://mirrors.aliyun.com/composer/
然后 composer install
关于爬取小说的一些思路
web api
控制器路径位于Novel/Controllers
。例如控制器 Novel/Controllers/Access/LoginController.php
的 URI 是 /Access/Login/login
列表爬虫思路:
一个单独的进程,会有定时器,定时循环所有小说看他们是否产生最新连载。 20170422 一旦有发现一个,则将其尚未爬取的章节加入到“爬取详情页”的任务队列数据表
novel_main
一部小说一条记录
处理状态流程图
一些记录
将illuminate/database
升级到 ^8.61.0
dom解析使用一个dom解析服务 20190406
实现和前端NovelSpiderFrontend的简单交互 20190405
去除软件包indieteq/indieteq-php-my-sql-pdo-database-class
,改用illuminate/database
20190303
引入league/route路由,对应文档http://route.thephpleague.com/4.x/usage/ 20190109
添加前端界面展示 20181106
更换出具库的查询工具 20181102
建立好测试目录,引入phpunit 20170423
编写测试代码.已成功在本地运行一个测试代码
参考
workerman 官方手册 http://doc.workerman.net/类库
数据库 orm,使用illuminate/database
workerman 框架,来自第三方. https://github.com/walkor/Workerman
DOM 解析,querylist。
前端界面是基于:iview-admin,仓库地址是:https://github.com/suhanyujie/NovelSpiderFrontend
版权声明:
1、该文章(资料)来源于互联网公开信息,我方只是对该内容做点评,所分享的下载地址为原作者公开地址。2、网站不提供资料下载,如需下载请到原作者页面进行下载。
3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考学习用!
4、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。