mediashare / spider
Spider是一个用于抓取网站的PHP库,它允许您抓取信息并执行自动化操作。
0.4.7
2021-09-27 12:58 UTC
Requires
- league/climate: ^3.5
- mediashare/crawler: *
- mediashare/kernel: *
- symfony/console: ^5.0
- symfony/filesystem: ^5.0
- symfony/finder: ^5.0
- zumba/json-serializer: ^2.2
Requires (Dev)
- tracy/tracy: ^2.7
README
💫 Spider是一个PHP库,具有易于模块化的网站抓取功能,允许您抓取信息。
Spider是一个可模块化的PHP编写的网站爬虫。该工具允许您检索信息和在网站页面上执行代码。它可以用于SEO或安全审计目的。用户可以使用社区创建的模块或创建自己的模块(通过Web界面用PHP编写)。
什么是爬虫?
爬虫是一个索引机器人,它自动遍历网站页面。使用爬虫可以有几个兴趣点
- 信息搜索与检索
- 验证您的网站SEO
- 集成测试
- 以自动化的方式在多个页面上执行PHP代码
功能
- 获取网站上的所有链接
- 检查HTTP响应
- 创建自己的模块(抓取并执行您的PHP代码)
- 无数据库,纯PHP
- 输出JSON文件
- 使用内核中的默认模块进行基本SEO审计。(元数据、图片、HttpCode、链接...)
库
- 用于代码集成的PHP类自动加载器。 mediashare/modules-provider
- 网站爬虫机器人。 mediashare/crawler
- 带有DomCrawler集成的抓取器。 mediashare/scraper
我很乐意收到您对项目的想法和贡献 😃
入门
安装
Composer使用
在项目中使用Spider库并创建自己的模块。
composer require mediashare/spider
使用
<?php // ./index.php require 'vendor/autoload.php'; use Mediashare\Spider\Entity\Config; use Mediashare\Spider\Entity\Url; use Mediashare\Spider\Spider; // Website Config $config = new Config(); $config->setWebspider(true); // Crawl all website $config->setPathRequires(['/Kernel/']); // Not crawl other path $config->setPathExceptions(['/CodeSnippet/']); // Not crawl this path // Modules $config->setReportsDir(__DIR__.'/reports/'); // Reports path $config->setModulesDir(__DIR__.'/modules/'); // Modules path $config->enableDefaultModule(true); // Enable default SEO kernel modules $config->removeModule('FileDownload'); // Disable Module // Prompt Console / Dump $config->setVerbose(true); // Prompt verbose output $config->setJson(false); // Prompt json output // Url $url = new Url('https://mediashare.fr'); // Run Spider $spider = new Spider($url, $config); $result = $spider->run();
Github
git clone https://github.com/Mediashare/Spider
cd Spider
composer install
从控制台执行代码。
bin/console spider:run https://mediashare.fr
二进制文件
curl -O https://raw.githubusercontent.com/Mediashare/Spider/master/spider.phar chmod 755 spider.phar
从控制台执行代码。
./spider.phar spider:run https://mediashare.fr
模块
模块是由社区创建的工具,用于在抓取网站时添加功能。向爬虫添加模块允许在网站的一个或多个页面上自动化代码执行。 更多信息...
要求
- 您的类名需要与.php文件名相同。
- 执行模块的入口点是run()函数,因此您的模块中必须有一个run()函数。
文档
DomCrawler是用于HTML和XML文档的DOM导航的symfony组件。您可以在此处找到文档。
创建自己的模块以执行抓取的数据操作。
bin/console spider:module Href
<?php // ./modules/Href.php namespace Mediashare\Modules; class Href { public $dom; public function run() { $links = []; foreach($this->dom->filter('a') as $link) { if (!empty($link)) { $href = rtrim(ltrim($link->getAttribute('href'))); if ($href) { if (isset($links[$href])) { $links[$href]['counter']++; } else { $links[$href]['counter'] = 1; } } } } return $links; } }