phpspider爬虫框架怎么用?

这几天使用PHP的爬虫框架爬取了一些数据,发现还是挺方便的,先上爬虫框架的文档 phpspider框架文档(https://doc.phpspider.org/)

使用方法其实在文档中写的很清楚而且在demo中也有使用示例,这里放下我自己的代码做个笔记<?php

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("/

/","",$data);

$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;

更多相关技术文章,请访问PHP中文网!

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

spider.php使用方法,phpspider爬虫框架怎么用相关推荐

  1. python3安装scrapy及使用方法(爬虫框架)

    安装: sudo pip3 install lxml sudo apt-get install python-dev sudo apt-get install build-essential sudo ...

  2. python如何编写爬虫_如何实现一个Python爬虫框架

    image 这篇文章的题目有点大,但这并不是说我自觉对Python爬虫这块有多大见解,我只不过是想将自己的一些经验付诸于笔,对于如何写一个爬虫框架,我想一步一步地结合具体代码来讲述如何从零开始编写一个 ...

  3. NodeJs爬虫框架-Spider

    gz-spider 一个基于Puppeteer和Axios的NodeJs爬虫框架 源码仓库 为什么需要爬虫框架 爬虫框架可以简化开发流程,提供统一规范,提升效率.一套优秀的爬虫框架会利用多线程,多进程 ...

  4. [学]PHP爬虫框架phpspider

    [学]PHP爬虫框架phpspider http://www.phpchina.com/article-40283-2.html http://www.111cn.net/phper/php-gj/6 ...

  5. python爬取10个网站_十个Python爬虫武器库示例,十个爬虫框架,十种实现爬虫的方法!...

    一般比价小型的爬虫需求,我是直接使用requests库 + bs4就解决了,再麻烦点就使用selenium解决js的异步 加载问题.相对比较大型的需求才使用框架,主要是便于管理以及扩展等. 1.Scr ...

  6. php spider 开发文档,开发PHPSpider爬虫的常用工具

    # 开发PHPSpider爬虫的常用工具 # 开发PHPSpider爬虫的常用工具 > "工欲善其事,必先利其器",开发PHPSpider爬虫,起码得有几件顺手的工具才行吧, ...

  7. Python:爬虫框架Scrapy的安装与基本使用

    一.简单实例,了解基本. 1.安装Scrapy框架 这里如果直接pip3 install scrapy可能会出错. 所以你可以先安装lxml:pip3 install lxml(已安装请忽略). 安装 ...

  8. 『Scrapy』爬虫框架入门

    框架结构 引擎:处于中央位置协调工作的模块 spiders:生成需求url直接处理响应的单元 调度器:生成url队列(包括去重等) 下载器:直接和互联网打交道的单元 管道:持久化存储的单元 框架安装 ...

  9. python创建scrapy_Python爬虫教程-31-创建 Scrapy 爬虫框架项目

    首先说一下,本篇是在 Anaconda 环境下,所以如果没有安装 Anaconda 请先到官网下载安装 Scrapy 爬虫框架项目的创建0.打开[cmd] 1.进入你要使用的 Anaconda 环境1 ...

  10. Python Scrapy爬虫框架实战应用

    通过上一节<Python Scrapy爬虫框架详解>的学习,您已经对 Scrapy 框架有了一个初步的认识,比如它的组件构成,配置文件,以及工作流程.本节将通过一个的简单爬虫项目对 Scr ...

最新文章

  1. 英伟达人工智能和处理器驱动的制药、生命科学合作
  2. 我的第一个 JSP (SSH) 个人网站【开源】
  3. 【Paper】2020_GrHDP Solution for Optimal Consensus Control of Multiagent Discrete-Time Systems
  4. 用SSDT方法恢复冒险岛的部分函数
  5. ux的重要性_颜色在UX中的重要性
  6. 手机钉钉在进行视频会议时怎么录屏
  7. python升级命令debian_debian python 2.7.11 升级
  8. window.btoa()方法;使字符编码成base64的形式
  9. 百面机器学习 #3 经典算法:01-3 核函数支撑向量机SVM
  10. 2017.3.11[bzoj2440][中山市选2011]完全平方数
  11. datatable java排序,JSF数据表(h:dataTable)DataModel排序数据
  12. WiFi 连接到网络的过程
  13. 芯烨打印机WEB API 调用HEX的模式DEMO
  14. php 写聊天室源码,php写的简易聊天室代码
  15. 通过JavaScript实现分页及搜索查询
  16. 微信小程序点击文字变色
  17. 支付宝支付 接口配置
  18. 光纤熔接机市场现状及未来发展趋势
  19. Python基础篇(九)-- 正则表达式
  20. AcWing4310. 树的DFS(dfs序列)

热门文章

  1. linux软硬链接 计数,深入理解Linux的软链接和硬链接
  2. vmware tools的下载与安装
  3. Fiddler+Android7.0+python+requests获取app评论内容《完美解决了代理后打开app没有网络的问题!!!》JustTrustMe+VirtualXposed工具的使用
  4. 提示“百度未授权使用地图API,可能是因为您提供的密钥不是有效的百度LBS开放平台密钥”解决方案
  5. 高拍仪二次开发(多浏览器,BS,Web)样例
  6. Linux内核分析学习路线总结(内核人员必看)
  7. 大脑网络结构、功能和控制的物理学
  8. 荆州水文水位查询_长江水位实时查询网(长江水位公告实时查询)
  9. 59——EXPLORING THE LIMITS OF DATA AUGMENTATION FORRETINAL VESSEL SEGMENTATION
  10. (二三)计算机组成原理笔记整理之系统总线(总线判优方式,标准传输率,数据总线,地址总线与MDR,MAR的关系等)