PHP爬蟲初探......先爬Learnku試試看

邪惡的咖啡發表於2020-07-23

宣告:本人沒有將爬蟲資料用於非法途徑!本文僅作為技術分享!PHP果然是最好的程式語言

在公司上班早早的完成任務了,閒著沒事玩玩PHP的爬蟲
本文用到的PHP爬蟲庫為PHPSPIDER,官方文件:PHPSPIDER,這個擴充套件還是去年剛參加工作的時候在Learnku瞭解到的。

執行截圖

PHP爬蟲初探......先爬Learnku試試看

  • 該擴充套件必須在命令列下執行!官方文件有寫
  • 該擴充套件支援多執行緒,但是配置比較麻煩,自己懶得配
  • 支援多種選擇器,預設是XPATH
  • 支援多種資料儲存方式

大家在學習之前推薦先看看這篇文章:爬蟲前測試

爬取Learnku結果

PHP爬蟲初探......先爬Learnku試試看

  • 資料有重複
  • 執行10分鐘獲取條數300條(單執行緒)

PHP爬蟲初探......先爬Learnku試試看

安裝

composer require owner888/phpspider
require './vendor/autoload.php';
use phpspider\core\phpspider;

測試程式碼

<?php
require './vendor/autoload.php';

use phpspider\core\phpspider;

/* Do NOT delete this comment */
/* 不要刪除這段註釋 */
$configs = array(
    'name' => 'Laravel',
    'log_show' => false,
    'domains' => array(
        'learnku.com',
    ),
    'scan_urls' => array(
        'https://learnku.com/laravel'
    ),
    'content_url_regexes' => array(
        "https://learnku.com/laravel/t/\d+"
    ),
    'list_url_regexes' => array(
        "https://learnku.com/laravel?page=\d+"
    ),
    'fields' => array(
//        array(
//            // 抽取內容頁的文章內容
//            'name' => "article_content",
//            'selector' => "/html/body/div[2]/div[1]/div[2]/div[1]/div[1]/div/div[3]",
//            'required' => true
//        ),
array(
    // 抽取內容頁的文章標題
    'name' => "article_title",
    'selector' => "/html/body/div[2]/div[1]/div[2]/div[1]/div[1]/div/h1/div[1]/span",
    'required' => true
),
    ),
    'export' => array(
        'type' => 'csv',
        'file' => './qiushibaike.csv',
    )
);
$spider = new phpspider($configs);
$spider->start();

總結

之前沒有系統的學習過爬蟲相關的知識,跟著文件走大概除錯了半小時勉強能做出點效果,單執行緒執行了10分鐘獲取到了300條資料,速度還是可以的。有興趣大家學習學習。

本次爬蟲用了Learnku做了測試,若有影響可以刪帖。

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章