mvdbos php spider,踩坑,windows部署phpspider采集,报错:failed to open stream
报错界面如下:
主要错误就是:在我的代码第三行,有一个require错误
require.'../vendor/owner888/phpspider/autoloader.php';
原先我是这样写的,但是使用命令行去跑,就出错了,原因就在于这个require在dos的情况下,phpspider的引入的路径不对
然后后面改成了下面这样子,吧目录给定义成绝对目录,这样就木有问题了.
require__DIR__.'/../vendor/owner888/phpspider/autoloader.php';
这样子,就可以继续接着跑啦.
附带采集源码一份.
require __DIR__.'/../vendor/owner888/phpspider/autoloader.php';
require_once 'config.php';
use phpspider\core\phpspider;
use phpspider\core\db;
//下面这个注释删了就跑不起来.....
/* Do NOT delete this comment */
/* 不要删除这段注释 */
$configs = array(
'name' => '特玩',
'log_show' => true,
'tasknum' => 3,//爬虫任务数
'output_encoding' => 'UTF-8',
//'save_running_state' => true,
//主域名
'domains' =>[
'www.te5.com',
'te5.com'
],
//入口地址
'scan_urls' => [
'http://www.te5.com/btgame/zkyx/',//折扣游戏
'http://www.te5.com/btgame/h5/',//h5
],
//列表url 匹配规则
'list_url_regexes' => [
// "/btshouyou/list_\d+_\d+.html",
],
//详情页url 匹配规则
'content_url_regexes' =>[
"/btshouyou/\d+.html"
],
'db_config' => $config,
'fields' => [
[
'name' => "type_name",//类型
'selector' => "//div[@class='bread']/a[last()-1]",
'required' => true,
],
[
'name' => "tags_name",//标签
'selector' => "//div[@id='tezheng']/@data-tezheng",
'required' => false,
],
[
'name' => "title",//标题
'selector' => "//div[@class='left']//h1",
'required' => true,
],
[
'name' => "time",//时间
'selector' => "//ul[@class='i1']//li[i='日期:']/span",
'required' => true,
],
[
'name' => "size",//大小
'selector' => "//ul[@class='i1']//li[i='大小:']/span",
'required' => false,
],
[
'name' => "content",//内容
'selector' => "//div[@class='game_content']",
'required' => true,
],
[
'name' => "and_url",//安卓下载路径
'selector' => "//a[@class='and_btn']/@href",
'required' => false,
],
[
'name' => "ios_url",//苹果下载路径
'selector' => "//a[@class='ios_btn']/@href",
'required' => false,
],
[
'name' => "pc_url",//pc端下载路径
'selector' => "//a[@class='pc_btn']/@href",
'required' => false,
],
[
'name' => "img",//图片
'selector' => "//div[@class='img']//img/@src",
'required' => false,
],
[
'name' => "keywords",//关键词
'selector' => "//meta[@name='Keywords']/@content",
'required' => false,
],
[
'name' => "description",//描述
'selector' => "//meta[@name='description']/@content",
'required' => false,
],
[
'name' => "comments",//评论
'selector' => "//div[@class='comments']",
'required' => false,
],
],
);
//实例化蜘蛛
$spider=new phpspider($configs);
//采集初始=>数据库初始化
$spider->on_start = function($phpspider)
{
$db_config = $phpspider->get_config("db_config");
// 数据库连接
db::set_connect('default', $db_config);
db::_init();
};
//详情页=>提取字段=>处理字段
$spider->on_extract_field = function($fieldname, $data, $page)
{
if ($fieldname == 'content' || $fieldname == 'comments')
{
$content = json_encode($data,JSON_UNESCAPED_UNICODE);
$content_gz = gzcompress($content);
$data = base64_encode($content_gz);
}
return $data;
};
//详情页=>提取最终的数据=>入库
$spider->on_extract_page = function($page, $data)
{
$savedata =[];
$savedata["cate_name"]="BT";
$savedata["app_name"]=$data["title"];
$savedata["type_name"]=$data["type_name"];
$savedata["tags_name"]=$data["tags_name"];
$savedata['create_time'] =$data["time"];
$savedata["content"]=$data["content"];
$savedata["comments"]=$data["comments"];
$savedata["and_btn"]=$data["and_url"];
$savedata["ios_btn"]=$data["ios_url"];
$savedata["pc_btn"]=$data["pc_url"];
$savedata["img"]=$data["img"];
$savedata["keywords"]=$data["keywords"];
$savedata["description"]=$data["description"];
$savedata["size"]=$data["size"];
$savedata['status'] = 1;//状态
$kwds1="传奇";
$kwds2="sf";
$str=strip_tags($savedata['app_name']);
$has_kwds=false;
if(strpos($str,$kwds1)!==false){
$has_kwds=true;
}
if(strpos($str,$kwds2)!==false){
$has_kwds=true;
}
//如果采集的数据content字段不为空,直接插入数据库
if($savedata['content']!==''&&$has_kwds===false){
$sql = "SELECT id from yx_app WHERE app_name='".$savedata['app_name']."';";
$row = db::get_one($sql);
if(empty($row)){
db::insert("yx_app", $savedata);//数据库保存
echo "数据已入库";
}else{
echo '数据重复,已跳过。。。。。';
}
}
return $data;
};
$spider->on_list_page = function($page, $content, $phpspider)
{
echo 'on_list_page:'.var_dump($page);
};
$spider->start();
mvdbos php spider,踩坑,windows部署phpspider采集,报错:failed to open stream相关推荐
- Flutter踩坑之flutter doctor --android-licenses报错
首先命令行键入flutter doctor命令检查你的环境,你可能会遇到以下问题: 执行完以上命令命令行会提示你执行flutter doctor --android-licenses命令来解决此问题. ...
- ant design pro入门踩坑:删除页面文件报错
前提:用ant design pro新增注册页,没有显示在菜单,在项目Page文件夹删除 原因:配置路由没有删 总结: 手动删除页面需要删1.Page目录下的页面文件 2.src/Page/.umi/ ...
- appium踩坑(VIVO手机)报错:An unknown server-side error occurred while processing the command.Original error
vivo手机链接appium,一直报错提示: An unknown server-side error occurred while processing the command. Original ...
- 踩坑录·执行go命令报错“cannot load ‘xxx’”
环境 操作系统: macOS10.15.4 golang版本: 1.13.8 (采用homebrew安装) 问题描述 写了一个打印出hello world的go文件,在使用go run hello.g ...
- server 2008 mysql 报错 0xc000007b_docker插件部署项目,volumes报错invalid volume specification...
关于idea使用docker插件部署项目,volumes报错invalid volume specification 观察volumes那行,没写错的.但是........ 使用docker-comp ...
- linux重启was控制台报错,Linux非WAS部署,启动报错Cannot run program \lsb_release\
Linux非WAS部署,启动报错Cannot run program "lsb_release" 已确认 tools.jar 文件是当前 linux 中的 jdk 下的 jar 文 ...
- 【错误记录】Windows 控制台程序编译报错 ( WINDOWS.H already included. MFC apps must not #include <Windows.h> )
文章目录 一.报错信息 二.解决方案 一.报错信息 Windows 控制台程序编译报错 : 已启动生成- 1>------ 已启动生成: 项目: hacktool, 配置: Debug Win3 ...
- webservice项目部署部署到weblogic报错之解决方案
webservice项目部署部署到weblogic报错之解决方案 参考文章: (1)webservice项目部署部署到weblogic报错之解决方案 (2)https://www.cnblogs.co ...
- Windows下安装RabbitMQ报错:unable to perform an operation on node时的解决方案
Windows下安装RabbitMQ报错:unable to perform an operation on node时的解决方案 参考文章: (1)Windows下安装RabbitMQ报错:unab ...
最新文章
- python count()方法
- memcache 基础原理
- Codeforces Beta Round #7 C. Line (扩展欧几里德)
- 记一次 .NET 某新能源汽车锂电池检测程序 UI挂死分析
- 洛谷P3357:最长k可重线段集问题(网络流)
- linux文件权限报错实例,自定义系统service SELinux权限报错
- 更新整理本人所有博文中提供的代码与工具(Java,2013.08)
- 设计模式 ( 二十) 备忘录模式
- python求解二次规划_二次规划问题
- 不一般的电路设计——什么是电压采集采样?
- 蓝桥杯 明码题解 【Java实现】
- 3---IO流练习题库
- 用Python挖掘网易云音乐的热门歌单
- 世界期货市场竞争格局的变迁
- idea 编译时,报“编码GBK的不可映射字符”
- [hdu4416 Good Article Good sentence]后缀自动机SAM
- 循黑线程序c语言,51单片机舵机循黑线小车程序
- Scal(三)——类与对象
- python实训总结泰坦尼克号_Python-数据清洗与分析案例之泰坦尼克号(一)
- 梯度提升树(GBDT)算法超详细版本