phpspider簡單快速上手的php爬蟲框架

山先生發表於2020-02-17

前言

前段時間接到一個開發採集網站資料的專案,從事php開發的我立刻想到使用php做爬蟲。雖然python爬蟲方便,但是php在這方面也不弱,誰讓php是世界上最好的語言!這裡推薦一款php的爬蟲框架phpspider。不建議自己寫爬蟲,因為效率太低。使用框架爬蟲真的要高效許多

官方文件:

https://doc.phpspider.org/


1、下載

官方github下載地址:

https://github.com/owner888/phpspider

下載地址可能無法訪問,這裡提供一個網盤下載地址:

https://pan.baidu.com/s/10n9ZOUQBlrJzOQx0ShOmMQ

提取碼:b2zc


2、檔案結構

下載解壓後,phpspider的檔案結構如圖所示:

phpspider簡單快速上手的php爬蟲框架


其中demo資料夾放的是phpspider的一些案例,如圖所示:

phpspider簡單快速上手的php爬蟲框架


3、建立爬蟲並且執行

在demo資料夾下建立爬蟲檔案。需要注意的是,phpspider有兩種執行爬蟲檔案的方式,一種是在命令列下執行;另外一種是視覺化操作(在瀏覽器下執行)


3.1 在命令列下執行爬蟲檔案

要爬取的物件連結:

https://www.douban.com/photos/album/1616649448/

要爬取的內容如圖所示:

phpspider簡單快速上手的php爬蟲框架

爬取id為wrapper的div所包含的內容


3.1.1 在demo資料夾下新建檔案spider.php,程式碼如下:

<?php
require_once __DIR__ . '/../autoloader.php';
use phpspider\core\phpspider;

/* Do NOT delete this comment */
/* 不要刪除這段註釋 */

$configs = array(
    'name' => '豆瓣',//定義當前爬蟲名稱
    'log_show' => true, //顯示日誌除錯資訊
    'input_encoding' => 'UTF-8',//輸入編碼

    //定義爬蟲爬取哪些域名下的網頁, 非域名下的url會被忽略以提高爬取速度
    'domains' => array(
        'www.douban.com'
    ),

    //定義爬蟲的入口連結, 爬蟲從這些連結開始爬取,同時這些連結也是監控爬蟲所要監控的連結
    'scan_urls' => array(
        'https://www.douban.com/photos/album/1616649448/'
    ),

    //爬蟲爬取資料匯出
    'export' => array( 
        'type' => 'csv', //type:匯出型別 csv、sql、db
        'file' => '../data/abc.csv', //file:匯出 csv、sql 檔案地址,如果不存在檔案自動建立
    ),


    //定義內容頁的抽取規則
    'fields' => array(
        array(
            'name' => "wrapper",
            'selector' => "//div[@id='wrapper']",
        )
    )
);

$spider = new phpspider($configs);
$spider->start();複製程式碼


3.1.2 在demo資料夾中直接開啟cmd命令皮膚,輸入命令列 php -f spider.php 回車,程式碼跑起來,如圖所示:

phpspider簡單快速上手的php爬蟲框架


3.1.3 檢視爬取下來的資料

在phpspider檔案結構中找到data資料夾下的abc.csv檔案,開啟檔案可看到爬取下來的資料,如圖所示:

phpspider簡單快速上手的php爬蟲框架


3.2 視覺化操作(在瀏覽器下執行爬蟲檔案)

要爬取的物件連結:

https://movie.douban.com/subject/26588308/?from=showing

要爬取的內容如圖所示:

phpspider簡單快速上手的php爬蟲框架

爬取class為nav-items的div所包含的內容


3.2.1 在demo資料夾下新建另外一個檔案test.php,程式碼如下:

<?php

header("Content-Type: text/html;charset=utf-8");
date_default_timezone_set("Asia/Shanghai");
ini_set("memory_limit", "10240M");

require_once __DIR__ . '/../autoloader.php';
use phpspider\core\phpspider;
use phpspider\core\requests;
use phpspider\core\selector;

/* Do NOT delete this comment */
/* 不要刪除這段註釋 */

$html = requests::get('https://movie.douban.com/subject/26588308/?from=showing');
$data = selector::select($html, "//div[@class='nav-items']");
echo $data;
複製程式碼


3.2.2 開啟瀏覽器輸入檔案地址

phpspider簡單快速上手的php爬蟲框架


結語

以上只是簡單的爬蟲例子,還可以進行多程式爬取,代理爬蟲,很多好玩的,更多操作參考官方文件

https://doc.phpspider.org/


最後

覺得文章不錯的話,給我個關注哇,點個讚唄!

如果對文章有疑問或想技術交流,可關注公眾號【GitWeb】與我一起探索學習!

phpspider簡單快速上手的php爬蟲框架


相關文章