本文实例原址:PHPspider爬虫10分钟快速教程
在我们的工作中可能会涉及到要到其它网站去进行数据爬取的情况,我们这里使用phpspider这个插件来进行功能实现。
1、首先,我们需要php环境,这点不用说。
2、安装composer,这个网上教程很多,这里不多做赘述,一面显得篇幅太长。
3、利用composer进行phpspider安装。
在安装的过程中,我们可能会遇到composer require长时间没反应的情况,这样的话。我们就需要换到中国镜像。方法如下:
镜像配置好后,我们就进行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源码吧。
打完代码后,记得根据要抓取的内容建立对应的数据库、数据表,字段要能对对上。
数据库如下: