PHP蜘蛛爬虫开发文档

PHP蜘蛛爬虫开发文档

《我用爬虫一天时间“偷了”知乎一百万用户,只为证明PHP是世界上最好的语言 》所使用的程序框架

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

  • 爬虫采用PHP编写

  • 从网页中抽取数据需要用XPath

  • 当然我们还可以使用CSS选择器

  • 很多情况下都会用到正则表达式

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

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

第一个demo

爬虫采用PHP编写, 下面以糗事百科为例, 来看一下我们的爬虫长什么样子:

    $configs = array(
        'name' => '糗事百科',
        'domains' => array(
            'qiushibaike.com',
            'www.qiushibaike.com'
        ),
        'scan_urls' => array(
            'http://www.qiushibaike.com/'
        ),
        'content_url_regexes' => array(
            "http://www.qiushibaike.com/article/\d+"
        ),
        'list_url_regexes' => array(
            "http://www.qiushibaike.com/8hr/page/\d+\?s=\d+"
        ),
        '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();

爬虫的整体框架就是这样, 首先定义了一个$configs数组, 里面设置了待爬网站的一些信息, 然后通过调用$spider = new phpspider($configs);和$spider->start();来配置并启动爬虫.

运行界面如下:

PHP蜘蛛爬虫开发文档

$configs对象如何定义, 后面会作详细介绍.^_^


官方下载地址:https://github.com/owner888/phpspider

官方开发手册:https://doc.phpspider.org/

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/112625.html原文链接:https://javaforall.net

(0)
上一篇 2021年11月4日 下午12:00
下一篇 2021年11月4日 下午1:00


相关推荐

  • 我是如何将网站全站启用Https的?-记录博客安装配置SSL证书全过程

    我是如何将网站全站启用Https的?-记录博客安装配置SSL证书全过程

    2021年10月14日
    34
  • vector的几种初始化及赋值方式

    vector的几种初始化及赋值方式vector的几种初始化及赋值方式

    2022年7月18日
    18
  • 【python】带你深入了解“迭代器“

    【python】带你深入了解“迭代器“迭代 正如大家已知 对序列 列表 元组 字典和文件都可以用 iter 方法生成迭代对象 然后用 next 方法访问 当然 这种访问不是自动的 如果用 for 循环 就可以自动完成上述访问了

    2026年3月19日
    2
  • VGGNet笔记

    VGGNet笔记转自 https blog csdn net muyiyushan article details 简介 VGGNet 由牛津大学的视觉几何组 VisualGeomet 提出 是 ILSVRC 2014 中定位任务第一名和分类任务第二名 其突出贡献在于证明使用很小的卷积 3 3 增加网络深度可以有效提升模型的效果 而且 VGGNet 对其他数据集具有很好的泛化能力

    2026年3月26日
    1
  • 决策树原理实例(python代码实现)_决策树实例

    决策树原理实例(python代码实现)_决策树实例决策树算法决策树算法是一种逼近离散函数值的方法。它是一种典型的分类方法,首先对数据进行处理,利用归纳算法生成可读的规则和决策树,然后使用决策对新数据进行分析。本质上决策树是通过一系列规则对数据进行分类的过程。决策树算法构造决策树来发现数据中蕴涵的分类规则.如何构造精度高、规模小的决策树是决策树算法的核心内容。决策树构造可以分两步进行。第一步,决策树的生成:由训练样本集生成决策树的过程。一般…

    2025年9月1日
    4
  • html语言中glyphicon,bootstrap glyphicon的空白占位符

    html语言中glyphicon,bootstrap glyphicon的空白占位符bootstrapgly 的空白占位符我有一个表头 sorting 引导 glyphicons 该图标仅在表格按照特定标题 sorting 时才显示 当我单击单元格时 它会更改表格的大小 该表是 dynamic 的 所以我宁愿不修复单元格大小 有没有一种方法可以在那里放置一个占位符 代替 graphics 我知道如何将 JavaScript 的工作来隐藏它 我只是不知道如何做的 CSS 给跨度一些大小

    2026年3月17日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号