573734817pc

本文实例原址:PHPspider爬虫10分钟快速教程

在我们的工作中可能会涉及到要到其它网站去进行数据爬取的情况,我们这里使用phpspider这个插件来进行功能实现。

1、首先,我们需要php环境,这点不用说。

2、安装composer,这个网上教程很多,这里不多做赘述,一面显得篇幅太长。

3、利用composer进行phpspider安装。

  在安装的过程中,我们可能会遇到composer require长时间没反应的情况,这样的话。我们就需要换到中国镜像。方法如下:

  Packagist 镜像使用方法

  镜像配置好后,我们就进行phpspider的安装了。

  新建一个文件夹,这里暂时取名为composerInstallDemo。

  打开文件夹,并在文件夹地址栏中输入“cmd”直接进入该文件夹的cmd模式。

    

  

  再在dos窗口中输入一下命令:

  composer require owner888/phpspider

  出现一下界面,则证明,phpspider已经安装成功。

  

4、编写自己的第一个爬虫程序。

  打开composerInstallDemo文件夹,在文件夹下新建一个php文件(名字随意,这里我创建的是index.php)

  

<?php
require \'/vendor/autoload.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\'  => \'\',
\'name\'  => \'demo\',
),
\'export\' => array(
\'type\' => \'db\',
\'table\' => \'jianshu\',  // 如果数据表没有数据新增请检查表结构和字段名是否匹配
),
//爬取的域名列表  
\'domains\' => array(
    \'jianshu\',
    \'www.jianshu.com\'
), 
//抓取的起点
\'scan_urls\' => array(
    \'https://www.jianshu.com/c/V2CqjW?utm_medium=index-collections&utm_source=desktop\'
),
//列表页实例
\'list_url_regexes\' => array(
    "https://www.jianshu.com/c/\d+"
),
//内容页实例
//  \d+  指的是变量
\'content_url_regexes\' => array(
    "https://www.jianshu.com/p/\d+",
),
\'max_try\' => 5,

\'fields\' => array(
    array(
        \'name\' => "title",
        \'selector\' => "//h1[@class=\'title\']",
        \'required\' => true,
    ),
    array(
        \'name\' => "content",
        \'selector\' => "//div[@class=\'show-content-free\']",
        \'required\' => true,
    ),
),
);

$spider = new phpspider($configs);
$spider->start();


  稍微解释一下一下句法的含义:

//h1[@class=\'title\']
获取所有class值为title的h1节点

//div[@class=\'show-content-free\']
获取所有class值为show-content-free的div节点

  具体为什么这么写呢?自己看简书的html源码吧。

  打完代码后,记得根据要抓取的内容建立对应的数据库、数据表,字段要能对对上。

  数据库如下:
  
5、万事俱备,只欠东风。
   接着cmd,输入php -f C:\Users\0923\Desktop\composerInstallDemo\index.php
   运行如下
  
6、打开数据看一下,是不是都抓取到了呢?
  
 
  

  

分类:

技术点:

相关文章: