mediashare/spider
Composer 安装命令:
composer require mediashare/spider
包简介
Spider is a php library for crawling website that allows you to scrape informations & automated actions.
README 文档
README
💫 Spider is a PHP library with easily module integration for crawling website that allows you to scrape informations.
Spider is a crawler of website modulable write in PHP. The tool allows you to retrieve information and execute code on website pages. It can be useful for SEO or security audit purposes. Users have the possibility to use the modules created by the community or to create their own modules (written in PHP via a web interface).
What is a Crawler?
A crawler is an indexing robot, it automatically explores the pages of a website. Using a crawler can have several interests:
- Information search & retrieval
- Validation of the SEO of your website
- Integration test
- Execution of PHP code on several pages in an automated way
Features
- Get all links from website
- Check HTTP response
- Create your own Modules (Crawl & execute your PHP code)
- No database, Pure PHP
- Output json file
- Use default modules from the kernel for basic SEO audit. (Metadata, Images, HttpCode, Links...)
Libraries
- Autoloader php class for code integration easily. mediashare/modules-provider
- Website bot crawler. mediashare/crawler
- Scraper with DomCrawler integration. mediashare/scraper
I would be happy to receive your ideas and contributions to the project 😃
Getting started
Installation
Composer Usage
Use Spider library in your project & create your own modules.
composer require mediashare/spider
Usage
<?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
Execute the code from the console.
bin/console spider:run https://mediashare.fr
Binary file
curl -O https://raw.githubusercontent.com/Mediashare/Spider/master/spider.phar chmod 755 spider.phar
Execute the code from the console.
./spider.phar spider:run https://mediashare.fr
Modules
Modules are tools created by the community to add features when crawling a website. Adding a module to a crawler allows the automation of code execution on one or more pages of a website. More information...
Requierements
- The name of your class needs to be the same as the name of the .php file.
- The entry point for executing modules is the run() function, so it is mandatory to have a run() function in your module.
Documentation
DomCrawler is symfony component for DOM navigation for HTML and XML documents. You can retrieve Documentation Here.
Create own module to execute actions with data scraped.
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; } }
mediashare/spider 适用场景与选型建议
mediashare/spider 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 121 次下载、GitHub Stars 达 15, 最近一次更新时间为 2019 年 12 月 21 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「http」 「library」 「parser」 「spider」 「crawler」 「website」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 mediashare/spider 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 mediashare/spider 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 mediashare/spider 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
repository php library
Easy to use SDK with grabber for multiple platforms at once like YouTube, Dailymotion, Facebook and more.
An MT940 bank statement parser for PHP
Inbox pattern process implementation for your Laravel Applications
Laravel integration for the jsonapi.org parser
A modern HTML DOM parser for PHP using DOMDocument and Symfony CssSelector.
统计信息
- 总下载量: 121
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 15
- 点击次数: 7
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2019-12-21