autoload.php beanbun_Beanbun: 简单开放的 PHP 爬虫框架
Beanbun
Beanbun 是用 PHP 編寫的多進程網絡爬蟲框架,具有良好的開放性、高可擴展性。
項目地址:github.com/kiddyuchin.…
文檔地址:beanbun.org
由來
我希望有這樣一個爬蟲框架:在簡單需求的情況下,可以用最少的代碼快速建立一個功能完善的爬蟲;而且如果你愿意,你可以對爬蟲進行你想要的任何修改。它要天然支持分布式,支持多進程(或線程),利用 composer,可以方便的建立起一個功能強大的爬蟲。
在對之前寫過的一個爬蟲的功能不斷的刪減調整后,就有了目前的 Beanbun,這個名字來自于作者家的貓,此貓名叫門丁,“門丁”是北方的一種面點。門丁 -> 豆包 -> bean bun。
我希望在這里能夠拋磚引玉,和大家一起繼續完善
Beanbun。
特點
支持守護進程與普通兩種模式(守護進程模式只支持 Linux 服務器)
默認使用 Guzzle 進行爬取
支持分布式
支持內存、Redis 等多種隊列方式
支持自定義URI過濾
支持廣度優先和深度優先兩種爬取方式
遵循 PSR-4 標準
爬取網頁分為多步,每步均支持自定義動作(如添加代理、修改 user-agent 等)
靈活的擴展機制,可方便的為框架制作插件:自定義隊列、自定義爬取方式...
安裝
Beanbun 可以通過 composer 進行安裝。
$composer require kiddyu/beanbun復制代碼
一個簡單的例子
創建一個文件 start.php,包含以下內容
require_once(__DIR__ . '/vendor/autoload.php');
use Beanbun\Beanbun;
$beanbun = new Beanbun;
$beanbun->seed = [
'http://www.950d.com/',
'http://www.950d.com/list-1.html',
'http://www.950d.com/list-2.html',
];
$beanbun->afterDownloadPage = function($beanbun){
file_put_contents(__DIR__ . '/' . md5($beanbun->url), $beanbun->page);
};
$beanbun->start();復制代碼
在命令行中執行
$ php start.php復制代碼
接下來就可以看到抓取的日志了。
2017-04-04 14:14:14 Beanbun worker download http://www.950d.com/ success.
2017-04-04 14:14:14 Beanbun worker download http://www.950d.com/list-1.html success.
2017-04-04 14:14:14 Beanbun worker download http://www.950d.com/list-2.html success.復制代碼
最后
后邊我會針對一些不同類型的網站,寫一些用 Beanbun 實現爬蟲的小例子,歡迎大家持續關注。
總結
以上是生活随笔為你收集整理的autoload.php beanbun_Beanbun: 简单开放的 PHP 爬虫框架的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: opencv 平面法向量_在OpenCV
- 下一篇: excel中调用python程序_一篇文