基于php的cli模式小说爬虫案例
概述
详细
一、源文件包含4个部分
1.使用说明文档.rar
2.小说源文件.rar
3.cli.rar
4.cmder_mini.zip
如下:
其中cli.rar文件如下
php文件是源码文件
二、系统的安装与使用
系统的安装
1.小说源文件.rar 解压后 上传到网站根目录下,或者在 本地 搭建网站服务器也可以,通过 域名+页面文件 可以打开 页面即可(建议在本地配置,方便测试研究),如 下图所示
2.cli.rar解压后放到指定的位置,如 E盘的 cli文件夹下,如下图:
其中文件夹sound下包括两个文件:cmdmp3win.exe , play.mp3 ,主要作用是在下载完成时播放提示声音.
系统的使用
1.打开 Cmder.exe ,用dos命令进入到 E:\cli ,如图:
2.执行命令 php xiaoshuo.php go ,如图:
温馨提法:使用 php 命令,需要 在 系统的 “环境变量” 中 配置,同时 要求 PHP 版本 5.6 或以上版本 ,如 下图所示
3.系统任务完成时,会有 声音提示,在 生成的 data 文件夹内有 生成的缓存文件 cache.php , 日期命名的 log 日志文件 以及 刚刚下载 的 小说 ,如图:
执行结果
缓存文件 cache.php
运行日志 log 文件
下载 的 小说文件
三、代码讲解
1.代码有详细的解析,如下图
2.系统参数的配置与定义,如下图
PATH_DATA : 数据存放的主要目录
PATH_HTML :当 isHtml 为 true 时,在 PATH_HTML 生成 html的文件
PATH_SOUND : 下载完成时 需要 播放的 提示 声音路径
isHtml : 当 isHtml 为 true 时,在 PATH_HTML 生成 html的文件
idOpenCurl : 当 idOpenCurl 为 true 时,启动多线程 下载 ,最多可同时处理 maxNum 条 数据
isOpenLog : 当 isOpenLog 为 true 时,在 PATH_DATA 下 生成 日志文件
isAutoCloseWin : 当 isAutoCloseWin 为 true 时,下载完成后自动关机
isTest : 当 isTest 为 true 时,说明当前环境为 测试 ,测试的数据 最多 为 testNum 条
testNum : 当 isTest 为 true 时,该参数有效
maxNum : 当 idOpenCurl 为 true 时,该参数有效
WebRoot : 当前 域名 ,如 http://www.abc.com , 不以 “/” 结尾
PageList : 小说目录列表页
3.部分代码详细说明
1.用 function list() 读取列表页,生成下载目录 cache.php
缓存文件 cache.php
用到的对应的方法函数function list()
四、php cli能做什么事情?
1.CLI模式其实就是命令行运行模式,英文全称Command-Line Interface(命令行接口)
2.由于 PHP-CLI 的最大执行时间是没有限制的(the maximum execution time is unlimited for CLI scripts),不像 Web 脚本默认最多只能执行30秒,所以用 PHP-CLI 脚本来维护系统是很合适的。
3.PHP CLI模式开发不需要任何一种Web服务器(包括Apache或MS IIS等),这样,CLI可以运行在各种场合。
五、疑问与答疑
1.系统运行过程有乱码,如何解决?
答:请保持文件编码的统一性。如 远程返回的 html 是 gbk 编码,那么 xiaoshuo.php 请转换为 gbk 编码 , dos 命令窗口 也 转换为 gbk 编码
2.为什么不直接使用互联网上小说网站做案例 还 需要 自己配置站点上传测试网页文件?
1.爬虫多线程运行是很耗损网络带宽资源的行为,使用不当会造成服务器崩溃,给他人造成不便。
2.爬虫对数据的读取有严格要求,哪些能爬哪些不能爬取,自己要心中有数,要用道德行为准则来约束自己。