mehrabx/web-crawler

此包的最新版本(v1.0)没有可用的许可证信息。

网络爬虫包

v1.0 2021-12-01 21:25 UTC

This package is auto-updated.

Last update: 2024-09-10 16:39:05 UTC


README

Laravel Toman

PHP 网络爬虫

这个库是一个 PHP 网络爬虫,它接收一系列 URL 和 DOM 选择,以遍历网页,并在每个页面上执行自定义的分析器。

安装

使用 composer 安装此库

composer require mehrabx/web-crawler

使用方法

在当前版本中,使用 xpath 表达式 选择元素

//set list of URLs and selects DOM elements of each URL page
$urls = [
    'https://test.exp/?page=1' => ["//img[@class='type1']","//a[@class='type1']"],
    'https://test.exp/?page=2' => ["//img[@class='type2'"],
    'https://test.exp/?page=3' => "//img[@class='type3']",
];

//return array of results
return \Crawler\Facades\CrawlFacade::make($urls)->start() ;

选项

sleep

为了避免被目标 URL 封锁,您可以在爬取每个 URL 之间设置睡眠时间

$urls = [
    'https://test.exp/?page=1' => ["//img[@class='type1']","//a[@class='type1']"],
    'https://test.exp/?page=2' => ["//img[@class='type2'"],
];

//set 5 seconds sleep time 
return \Crawler\Facades\CrawlFacade::make($urls)->sleep(10)->start() ;

默认选择

您可以设置默认选择。没有选择的 URL 可以使用它

$urls = [
    'https://test.exp/?page=1', //this url has not select
    'https://test.exp/?page=2' => ["//img[@class='type2'"],
];

return \Crawler\Facades\CrawlFacade::make($urls)
                                    ->defaultSelect("//img[@class='type1']")
                                    ->start() ;