spider.php使用方法,phpspider爬虫框架的使用
这几天使用PHP的爬虫框架爬取了一些数据,发现还是挺方便的,先上爬虫框架的文档 phpspider框架文档
使用方法其实在文档中写的很清楚而且在demo中也有使用示例,这里放下我自己的代码做个笔记
include "./autoloader.php";
use phpspider\core\phpspider;
/* Do NOT delete this comment */
/* 不要删除这段注释 */
$configs = array(
'name' => '中国保温网',
'domains' => array(
'www.cnbaowen.net',
'cnbaowen.net'
),
'scan_urls' => array(
'http://www.cnbaowen.net/news/list-3720-1.html'
),
'export' => array(
'type' => 'db',
'table' => 'articles_mc',
),
'db_config' => array(
'host' => '127.0.0.1',
'port' => 3306,
'user' => 'root',
'pass' => '123456',
'name' => 'spider',
),
'content_url_regexes' => array(
"http://www.cnbaowen.net/news/show-\d .html"
),
'list_url_regexes' => array(
"http://www.cnbaowen.net/news/list-3720-\d .html"
),
'fields' => array(
array(
// 抽取内容页的文章内容
'name' => "title",
'selector' => "//h1[@id='title']",
'required' => true
),
array(
// 抽取内容页的文章作者
'name' => "content",
'selector' => "//div[@id='content']",
'required' => true
),
array(
// 抽取内容页的文章作者
'name' => "type"
),
array(
// 抽取内容页的文章作者
'name' => "site_id"
),
),
);
$spider = new phpspider($configs);
$spider->on_list_page = function($page, $content, $spider){
for ($i = 2; $i < 24; $i )
{
$url = "http://www.cnbaowen.net/news/list-3720-{$i}.html";
$spider->add_url($url);
}
};
$spider->on_extract_field = function($fieldname, $data, $page){
if($fieldname == "type"){
return 2;
}elseif($fieldname == "content"){
$s = preg_replace("/
$s = preg_replace('//is',"",$s);
$data = preg_replace('//is',"",$s);
return $data;
}elseif($fieldname == "site_id"){
return 1;
}else{
return $data;
}
};
$spider->start();
注释:这里需要说明一点,抓取页面数据时我只需要标题和内容的部分,但是存入数据库时我需要使用到另外两个字段,所以定义字段的时候多定义了`type`和`site_id`两个字段,但是这两个字段的实际赋值是在 `on_extract_field` 回调函数中完成的
附带sql语句
CREATE TABLE `articles_mc` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`title` varchar(200) DEFAULT NULL,
`content` text,
`type` int(5) DEFAULT '0' COMMENT '文章类型 1行业资讯 2技术资料',
`site_id` int(5) DEFAULT NULL COMMENT '站点id',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4887 DEFAULT CHARSET=utf8mb4;
来源:https://www.icode9.com/content-1-275851.html
spider.php使用方法,phpspider爬虫框架的使用相关推荐
- python3安装scrapy及使用方法(爬虫框架)
安装: sudo pip3 install lxml sudo apt-get install python-dev sudo apt-get install build-essential sudo ...
- python如何编写爬虫_如何实现一个Python爬虫框架
image 这篇文章的题目有点大,但这并不是说我自觉对Python爬虫这块有多大见解,我只不过是想将自己的一些经验付诸于笔,对于如何写一个爬虫框架,我想一步一步地结合具体代码来讲述如何从零开始编写一个 ...
- NodeJs爬虫框架-Spider
gz-spider 一个基于Puppeteer和Axios的NodeJs爬虫框架 源码仓库 为什么需要爬虫框架 爬虫框架可以简化开发流程,提供统一规范,提升效率.一套优秀的爬虫框架会利用多线程,多进程 ...
- [学]PHP爬虫框架phpspider
[学]PHP爬虫框架phpspider http://www.phpchina.com/article-40283-2.html http://www.111cn.net/phper/php-gj/6 ...
- python爬取10个网站_十个Python爬虫武器库示例,十个爬虫框架,十种实现爬虫的方法!...
一般比价小型的爬虫需求,我是直接使用requests库 + bs4就解决了,再麻烦点就使用selenium解决js的异步 加载问题.相对比较大型的需求才使用框架,主要是便于管理以及扩展等. 1.Scr ...
- php spider 开发文档,开发PHPSpider爬虫的常用工具
# 开发PHPSpider爬虫的常用工具 # 开发PHPSpider爬虫的常用工具 > "工欲善其事,必先利其器",开发PHPSpider爬虫,起码得有几件顺手的工具才行吧, ...
- Python:爬虫框架Scrapy的安装与基本使用
一.简单实例,了解基本. 1.安装Scrapy框架 这里如果直接pip3 install scrapy可能会出错. 所以你可以先安装lxml:pip3 install lxml(已安装请忽略). 安装 ...
- 『Scrapy』爬虫框架入门
框架结构 引擎:处于中央位置协调工作的模块 spiders:生成需求url直接处理响应的单元 调度器:生成url队列(包括去重等) 下载器:直接和互联网打交道的单元 管道:持久化存储的单元 框架安装 ...
- python创建scrapy_Python爬虫教程-31-创建 Scrapy 爬虫框架项目
首先说一下,本篇是在 Anaconda 环境下,所以如果没有安装 Anaconda 请先到官网下载安装 Scrapy 爬虫框架项目的创建0.打开[cmd] 1.进入你要使用的 Anaconda 环境1 ...
- Python Scrapy爬虫框架实战应用
通过上一节<Python Scrapy爬虫框架详解>的学习,您已经对 Scrapy 框架有了一个初步的认识,比如它的组件构成,配置文件,以及工作流程.本节将通过一个的简单爬虫项目对 Scr ...
最新文章
- 学python心得体会500字-Python初学心得体会
- 191. Number of 1 Bits
- [深度学习] PyTorch-BigGraph 使用
- 在运行时更新代码(已Spring解密)
- cadence 16.6中Z-copy的用法
- cte公用表表达式_SQL Server中的CTE; 查询公用表表达式
- protobuf vc2008编译
- pythongetattribute_Python __getattribute__ vs __getattr__ 浅谈
- Snagit 2020 Windows和macOS苹果版汉化版中文版汉化补丁Snagit中文网Snagit中文官网camsnag.com/snagit
- 使用SSH工具链接本地虚拟机
- spark学习之资源调度
- java 变位词,变位词 java
- 计算机语言英语作文80词,春节英语作文80字【带中文翻译】-太平洋电脑网
- day 46 http和html
- 双11还没完,商家已经被退货“逼疯”了
- K.im团队与Kim Dotcom AMA直播回顾
- int i ; const int val=i ; 在C++中这种赋值对吗?
- 《实用C++》第10课:if 语句实现关系运算
- Framer X for Mac(交互设计工具)
- [ol-cesium] ol-cesium学习 二维切换三维 npm启动
热门文章
- 康佳电视系统升级服务器地址,康佳电视各平台升级方法及强制刷机汇总
- MogDB官网正式亮相!单机256万tpmC再创佳绩
- 【Android】移动端接入Cronet实践
- React.js引入阿里icon解决icon显示为小方框问题
- php爬虫亚马逊,亚马逊爬虫(亚马逊 api)
- 基于YOLO的新型RGB-D融合方法对行人进行检测和3D定位
- “飞思卡尔”智能车竞赛有感
- 最新全国行政区划,省市区县乡镇四级json数据
- Vue 单文件模板中覆盖引入库 CSS 样式
- mysql +cobar_数据库中间件Cobar功能探究