phpspider一款优秀的PHP开发蜘蛛爬虫

编写PHP网络爬虫,需要具备以下技能:

爬虫采用PHP编写(推荐学习:PHP视频教程)

从网页中抽取数据需要用XPath ( XPath选择器教程 )

当然我们还可以使用CSS选择器 ( CSS选择器教程 )

很多情况下都会用到正则表达式 ( 正则表达式教程 )

Chrome的开发者工具是神器, 很多AJAX请求需要用它来分析

注意:本框架只能在命令行下运行,命令行、命令行、命令行,重要的事情说三遍 ^_^

本篇写的demo是爬取军事教育网站<?php

require_once __DIR__ . '/../autoloader.php';

use phpspider\core\phpspider;

/* Do NOT delete this comment */

/* 不要删除这段注释 */

$configs = array(

'name' => '军事', // 给你的爬虫起一个名字

'log_show' => false, // 是否显示日志

'tasknum' => 1, // 开启多少个进程爬取

// 数据库配置

'db_config' => array(

'host' => '127.0.0.1',

'port' => 3306,

'user' => 'root',

'pass' => 'root',

'name' => 'collection',

),

// 数据库表,表需要已存在,collection库,test表

'export' => array(

'type' => 'db',

'table' => 'test',

),

// 爬取的域名列表

'domains' => array(

'war.163.com'

),

// 抓取的起点

'scan_urls' => array(

'http://war.163.com'

),

// 列表页实例,你要爬取的列表,也就是分页

'list_url_regexes' => array(

"http://war.163.com"

),

// 内容页实例,文章的内容页

// \d+ 指的是变量,就是可变的参数

'content_url_regexes' => array(

"http://war.163.com/photoview/4T8E0001/\d+",

),

// 失败重新爬取次数

'max_try' => 5,

// 爬取规则配置

'fields' => array(

array(

'name' => "title", // 数据库字段名

'selector' => "//div[@class='headline']/h1", // 规则,表示:headline类里的h1标签

'required' => true, // 如果为空,整条数据丢弃

),

array(

'name' => "content",

'selector' => "//div[@class='overview']/p",

'required' => true,

),

array(

'name' => "img",

'selector' => "//img[@class='firstPreload']",

'required' => true,

),

),

);

$spider = new phpspider($configs);

$spider->start();

PHP系统能不能加爬虫,php能做爬虫吗相关推荐

  1. python和node爬虫_node可以做爬虫吗?

    node可以做爬虫,下面我们来看一下如何使用node来做一个简单的爬虫. node做爬虫的优势: 第一个就是他的驱动语言是JavaScript.JavaScript在nodejs诞生之前是运行在浏览器 ...

  2. python的爬虫库_python做爬虫常用库

    python做爬虫常用库 一.总结 一句话总结: urllib:一系列用于操作URL的功能. requests:基于 urllib 编写的,阻塞式 HTTP 请求库,发出一个请求,一直等待服务器响应后 ...

  3. java做爬虫和python做爬虫_为什么常用Python,Java做爬虫,而不是C#C++等?

    我写了爬虫在c#和java.区别不大,原则是充分利用正则表达式.这只是一个平台的问题.后来我才知道,许多爬虫是用python编写的.因为我不熟悉python目前,我不知道为什么.百度给了以下结果:1) ...

  4. 如何给python爬虫加界面_给Python爬虫做一个界面.上

    做爬虫做了那么久,开始逐渐不满足写好程序,每次只能完成一件事情.开始思考如何可以做一个简单界面交互,再增加爬虫的可操作室,做交互界面有两个思路: 用Django做一个web界面: 用PyQt做一个ex ...

  5. Linux系统下如何加载U盘或移动硬盘

    Linux系统下如何加载U盘或移动硬盘 2007-05-15 00:00作者:赵彪出处:论坛整理责任编辑:原野 - 1.在插入U盘或硬盘之前,在命令行窗口运行:fdisk -l 命令,系统将显示目前所 ...

  6. 一加7pro运动计步功能_系统:一加推送一加7Pro的氢OS9.5.9系统版本更新,继续优化屏幕...

    最新消息,一加目前已经正式推送更新了一加7Pro的Hydrogen OS 9.5.9.GM21系统版本.这次的更新继续优化了屏幕的亮度和灵敏度问题.还加入了游戏中心功能. 其实一加7 Pro在不久之前 ...

  7. php站群系统,ThinkPhp内核逐鹿泛目录站群系统 毫秒级加载速度 丰富的内容库搭配(价值8000元)...

    [温馨提示]源码包解压密码:www.youhutong.com 资源描述 ThinkPhp内核逐鹿泛目录站群系统 毫秒级加载速度 丰富的内容库搭配(价值8000元) 源码介绍: 逐鹿泛目录站群完整源码 ...

  8. Centos系统创建用户oracle后,用该用户登陆系统,页面加载报错GConf error

    Linux 的 GConf error 解决办法 问题: Centos系统创建用户oracle后,用该用户登陆系统,页面加载报错,导致重新进入Centos系统后出现: GConf error:Fail ...

  9. 电脑开机进不了系统卡在加载界面怎么办?

    电脑开机进不了系统卡在加载界面怎么办?有用户电脑弹出需要进行系统更新,不小心点到了系统更新的选项.因为自己不想进行系统更新,所以马上将电脑关机了.但是关机之后却发现系统一直卡在开机的界面中,无法进入桌 ...

最新文章

  1. 在线旅游的2020:洗牌重组、直播自救、跨界面敌
  2. 什么是Session分布式共享
  3. REVERSE-PRACTICE-CTFSHOW-6
  4. c语言程序如何实现分组,c程序-实现随机分组.ppt
  5. 计算机电竞方向,关于电竞专业的就业方向
  6. 机器学习——第一回视频总结
  7. 平安银行薪资职级表_程序员工资有多高?看看阿里、腾讯、百度这些大厂薪资和职级一览...
  8. sitemesh框架的简单使用(springboot+maven+jsp+sitemesh)
  9. matlab在机械中的应用,MATLAB在机械工程控制基础中的应用
  10. 51nod 牛奶 bfs深度优先搜索
  11. 用MATLAB实现对运动物体识别与跟踪
  12. 几何公差学习笔记(二)-- 公差带的定义、标注和解释
  13. 使用Proxmox 和 Deskpool 搭建桌面云系统
  14. 医院洁净手术室设计装修要点SICOLAB
  15. c语言录入信息后无法显示桌面,输入法在桌面不显示,怎么修改能显示在桌面任 – 手机爱问...
  16. HCIE-CloudComputing学习笔记之一:FusionComuter-2020.12
  17. Android 中的“后台无效动画“行为分析
  18. ArcGIS9.3的注册码
  19. 【2018慢性病与信息大会】中国信息通信研究院党委副书记 乔发民致辞
  20. 道路曲线线路坐标计算 ∈ C# 编程笔记

热门文章

  1. wxWidgets:wxMDIParentFrame类用法
  2. wxWidgets:wxHtmlHelpWindow类用法
  3. wxWidgets:wxArtProvider类用法
  4. boost::timer::auto_cpu_timer相关的测试程序
  5. boost::safe_numerics::safe相关的测试程序
  6. boost::hana::range_c用法的测试程序
  7. boost::reverse_graph用法的测试程序
  8. 宏FUSION_MAKE用法的测试程序
  9. boost::fusion::find_if用法的测试程序
  10. boost::contract模块实现observer观察者的测试程序