|
|
- <?php
- require_once __DIR__ . '/../autoloader.php';
- use phpspider\core\phpspider;
- use phpspider\core\requests;
- use phpspider\core\selector;
- /* Do NOT delete this comment */
- /* 不要删除这段注释 */
- $configs = array(
- 'name' => '糗事百科', // 爬虫名称
- 'log_show' => false, // 是否显示日志
- 'log_file' => 'data/index1.log', // 日志文件路径
- // 日志记录类型,默认值为空,即显示和记录所有日志类型
- //普通类型: info
- //警告类型: warn
- //调试类型: debug
- //错误类型: error
- 'log_type' => '',
- //输入编码
- //明确指定输入的页面编码格式(UTF-8,GB2312,…..),防止出现乱码,如果设置null则自动识别
- 'input_encoding' => null,
- //输出编码
- //明确指定输出的编码格式(UTF-8,GB2312,…..),防止出现乱码,如果设置null则为utf-8
- 'output_encoding' => null,
- //并发数同时工作的爬虫任务数
- //需要配合redis保存采集任务数据,供进程间共享使用
- //默认值为1,即单进程任务爬取
- 'tasknum' => 1,
- //多服务器处理
- //需要配合redis来保存采集任务数据,供多服务器共享数据使用
- //默认值为false,即单服务器任务爬取
- 'multiserver' => false,
- //服务器ID,多服务器处理时需要,默认值为1
- 'serverid' => 1,
- //保存爬虫运行状态
- //需要配合redis来保存采集任务数据,供程序下次执行使用
- //注意:多任务处理和多服务器处理都会默认采用redis,可以不设置这个参数
- //默认值为false,即不保存爬虫运行状态
- 'save_running_state' => false,
- //保存爬虫运行状态、多任务处理 和 多服务器处理 都需要redis来保存采集任务数据
- 'queue_config' => array(
- 'host' => '127.0.0.1',
- 'port' => 6379,
- 'pass' => '',
- 'db' => 5,
- 'prefix' => 'phpspider',
- 'timeout' => 30,
- ),
- //采集间隔,单位毫秒,设置爬取时间间隔为1秒
- 'interval' => 1000,
- //请求超时时间,爬虫爬取每个网页的超时时间,单位秒
- 'timeout' => 5,
- //最大重试次数,爬虫爬取每个网页失败后尝试次数,超过该次数则不再重试,网络不好可能导致爬虫在超时时间内抓取失败, 可以设置此项允许爬虫重复爬取
- 'max_try' => 2,
- //最大抓取深度,爬虫抓取每个网页的最大抓取深度,超过该深度则不再继续抓取,可以设置此项允许爬虫抓取更深的网页
- 'max_depth' => 5,
- //最大字段数,默认值为0,即不限制,如果设置此项,则爬虫最多抓取多少个字段,超过该数则不再继续抓取,可以设置此项允许爬虫抓取更多的数据
- 'max_fields' => 0,
- //User-Agent列表,爬虫爬取网页所使用的浏览器类型
- 'user_agent' => array(
- "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36",
- "Mozilla/5.0 (iPhone; CPU iPhone OS 9_3_3 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13G34 Safari/601.1",
- "Mozilla/5.0 (Linux; U; Android 6.0.1;zh_cn; Le X820 Build/FEXCNFN5801507014S) AppleWebKit/537.36 (KHTML, like Gecko)Version/4.0 Chrome/49.0.0.0 Mobile Safari/537.36 EUI Browser/5.8.015S",
- ),
- //爬虫爬取网页所使用的伪IP,用于破解防采集
- 'client_ip' => array(
- '192.168.0.2',
- '192.168.0.3',
- '192.168.0.4',
- ),
- //导出数据格式
- //type:导出类型 csv、sql、db
- //file:导出 csv、sql 文件地址
- //table:导出db、sql数据表名
- 'export' => array(
- 'type' => 'csv',
- 'file' => './data/index.csv', // data目录下
- ),
- //mysql数据库配置
- 'db_config' => array(
- 'host' => '127.0.0.1',
- 'port' => 3306,
- 'user' => 'root',
- 'pass' => 'root',
- 'name' => 'demo',
- ),
- //定义爬虫爬取哪些域名下的网页, 非域名下的url会被忽略以提高爬取速度
- 'domains' => array(
- 'qiushibaike.com',
- 'www.qiushibaike.com'
- ),
- //定义爬虫的入口链接, 爬虫从这些链接开始爬取,同时这些链接也是监控爬虫所要监控的链接
- 'scan_urls' => array(
- 'http://www.qiushibaike.com/'
- ),
- //定义内容页url的规则
- //内容页是指包含要爬取内容的网页 比如http://www.qiushibaike.com/article/115878724就是糗事百科的一个内容页
- 'content_url_regexes' => array(
- "http://www.qiushibaike.com/article/\d+"
- ),
- //定义列表页url的规则
- //对于有列表页的网站, 使用此配置可以大幅提高爬虫的爬取速率
- //列表页是指包含内容页列表的网页 比如http://www.qiushibaike.com/8hr/page/2/?s=4867046就是糗事百科的一个列表页
- 'list_url_regexes' => array(
- "http://www.qiushibaike.com/8hr/page/\d+\?s=\d+"
- ),
- //定义内容页的抽取规则
- //规则由一个个field组成, 一个field代表一个数据抽取项
- 'fields' => array(
- array(
- // 抽取内容页的文章内容
- 'name' => "article_content",
- 'selector' => "//*[@id='single-next-link']",
- 'required' => true
- ),
- array(
- // 抽取内容页的文章作者
- 'name' => "article_author",
- 'selector' => "//div[contains(@class,'author')]//h2",
- 'required' => true
- ),
- ),
- );
- $spider = new phpspider($configs);
- $spider->start();
复制代码
|
|