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

前言

前段時間接到一個開發採集網站數據的項目,從事php開發的我馬上想到使用php作爬蟲。雖然python爬蟲方便,可是php在這方面也不弱,誰讓php是世界上最好的語言!這裏推薦一款php的爬蟲框架phpspider。不建議本身寫爬蟲,由於效率過低。使用框架爬蟲真的要高效許多php

官方文檔:
https://doc.phpspider.org/html

一、下載

官方github下載地址:
https://github.com/owner888/p...python

下載地址可能沒法訪問,這裏提供一個網盤下載地址:
https://pan.baidu.com/s/10n9Z...
提取碼:b2zcgit

二、文件結構

下載解壓後,phpspider的文件結構如圖所示:
github


其中demo文件夾放的是phpspider的一些案例,如圖所示:
sql

三、建立爬蟲而且運行

在demo文件夾下建立爬蟲文件。須要注意的是,phpspider有兩種運行爬蟲文件的方式,一種是在命令行下運行;另一種是可視化操做(在瀏覽器下運行)segmentfault

3.1 在命令行下運行爬蟲文件瀏覽器

要爬取的對象連接:
https://www.douban.com/photos...微信

要爬取的內容如圖所示:

爬取id爲wrapper的div所包含的內容app

3.1.1 在demo文件夾下新建文件spider.php,代碼以下:

<?php  
require_once__DIR__ . '/../autoloader.php';  
usephpspider\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 回車,代碼跑起來,如圖所示:

3.1.3 查看爬取下來的數據

在phpspider文件結構中找到data文件夾下的abc.csv文件,打開文件可看到爬取下來的數據,如圖所示:

3.2 可視化操做(在瀏覽器下運行爬蟲文件)

要爬取的對象連接:
https://movie.douban.com/subj...

要爬取的內容如圖所示:

爬取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';  
usephpspider\core\phpspider;  
usephpspider\core\requests;  
usephpspider\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 打開瀏覽器輸入文件地址

結語

以上只是簡單的爬蟲例子,還能夠進行多進程爬取,代理爬蟲,不少好玩的,更多操做參考官方文檔
https://doc.phpspider.org/

最後

以爲文章不錯的,給我點個贊哇,關注一下唄!
技術交流可關注微信公衆號【GitWeb】,加我好友一塊兒探討
微信交流羣:加好友(備註思否)邀你入羣,抱團學習共進步

相關文章
相關標籤/搜索