scrapify-dev/api-tools
最新稳定版本:v1.0.0
Composer 安装命令:
composer require scrapify-dev/api-tools
包简介
A Laravel package to handle API requests, logging, and exporting.
README 文档
README
📦 Scrapify ApiTools
A Laravel package for API requests, web scraping, and dynamic data exporting using PhpSpreadsheet.
📥 Installation
Install via Composer:
composer require scrapify-dev/api-tools
The service provider is auto-discovered by Laravel.
If you need to register manually, add to config/app.php:
'providers' => [ Scrapify\ApiTools\ApiToolsServiceProvider::class, ],
⚙️ Requirements
-
PHP:
>=8.0 -
Laravel:
^9.0|^10.0|^11.0|^12.0 -
Dependencies:
phpoffice/phpspreadsheet:^4.5symfony/dom-crawler:^6.0league/html-to-markdown:^4.0illuminate/support(as per Laravel version)
📚 Features
- ApiService → Make robust HTTP API calls with authentication & custom headers.
- ApiScrapeService → Scrape HTML, Markdown, specific elements, or full-page screenshots.
- DynamicExport → Export data dynamically to Excel or other formats.
1️⃣ ApiService
Make HTTP requests to external APIs.
Usage
use Scrapify\ApiTools\ApiService; $apiService = new ApiService(); try { $response = $apiService->callApi( 'https://api.example.com/data', // Endpoint 'GET', // Method ['param1' => 'value1'], // Payload 'Bearer', // Auth type ['token' => 'your_auth_token'], // Auth data ['X-Custom-Header' => 'MyValue'] // Headers ); $data = $response->json(); } catch (\Exception $e) { echo $e->getMessage(); }
2️⃣ ApiScrapeService
Scrape websites & extract data.
Supported output types
html→ Raw HTMLmarkdown→ HTML to Markdownscreenshot→ Full-page screenshotspecific→ Extract specific data (links, emails, images, phones, metadata, headings)
Usage
use Scrapify\ApiTools\ApiScrapeService; $scraper = new ApiScrapeService(); // Extract links & emails $result = $scraper->scrape( 'https://example.com', 'specific', ['link', 'email'] ); // Screenshot $screenshot = $scraper->scrape( 'https://example.com', 'screenshot' );
3️⃣ DynamicExport
Prepare and export tabular data.
Usage
use Scrapify\ApiTools\Exports\DynamicExport; $rows = [ ['John Doe', 'john@example.com'], ['Jane Smith', 'jane@example.com'], ]; $headings = ['Name', 'Email']; $export = new DynamicExport($rows, $headings); // Get arrays $headingsArray = $export->getHeadings(); $rowsArray = $export->getRows();
📊 Example: Export to Excel
use PhpOffice\PhpSpreadsheet\Spreadsheet; use PhpOffice\PhpSpreadsheet\Writer\Xlsx; use PhpOffice\PhpSpreadsheet\Cell\Coordinate; use Scrapify\ApiTools\Exports\DynamicExport; // Prepare export $export = new DynamicExport($rows, $headings); $spreadsheet = new Spreadsheet(); $sheet = $spreadsheet->getActiveSheet(); // Headings foreach ($export->getHeadings() as $col => $heading) { $colLetter = Coordinate::stringFromColumnIndex($col + 1); $sheet->setCellValue($colLetter . '1', $heading); } // Rows foreach ($export->getRows() as $rowIndex => $row) { foreach ($row as $colIndex => $value) { $colLetter = Coordinate::stringFromColumnIndex($colIndex + 1); $sheet->setCellValue($colLetter . ($rowIndex + 2), $value); } } // Save file $writer = new Xlsx($spreadsheet); $writer->save('exported_data.xlsx');
统计信息
- 总下载量: 1
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-08-11