ymsoft / telegram-channel-scrapper
公共Telegram频道抓取器。
1.0.1
2023-11-18 11:37 UTC
Requires
- php: ^8.1
- guzzlehttp/guzzle: ^7.0
- illuminate/collections: ^10.32
- psr/http-client: ^1.0
- symfony/css-selector: ^6.3
- symfony/dom-crawler: ^6.3
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.38
- phpstan/phpstan: ^1.10
- phpunit/phpunit: ^10.4
This package is auto-updated.
Last update: 2024-09-20 11:59:00 UTC
README
公共Telegram频道抓取器
此包旨在为需要高效抓取公共Telegram频道的人提供帮助。这相当简单
use Ymsoft\TelegramChannelScrapper\TelegramCS; $scrapper = new TelegramCS('channel_name'); /** @var \Ymsoft\TelegramChannelScrapper\Entity\Channel $channel */ $channel = $scrapper->getChannel(); /** * By default, you will scrap the latest 20 messages. * @var \Illuminate\Support\Collection<\Ymsoft\TelegramChannelScrapper\Entity\Message\Message> $messages */ $messages = $scrapper->getMessages(); $messages->count(); // will return 20 // In order to download 20 more messages you need $scrapper->loadPrevMessages(); $scrapper->getMessages()->count() // will return 40 // You can download old messages endlessly until you download everything.
由于此包使用 illuminate/collections,您可以使用此处描述的所有 方法 来处理消息集合。
/** * @var \Illuminate\Support\Collection<\Ymsoft\TelegramChannelScrapper\Entity\Message\Message> $messages */ $messages = $service->getMessage(); $messages->all(); $messages->count(); $messages->toArray(); $messages->firstWhere('id', 1); $messages->last(); $messages->first(); // and much more https://laravel.net.cn/docs/10.x/collections#available-methods
频道
查看所有实体属性 Channel。
消息
查看所有实体属性 Message。
安装
您可以通过composer安装此包
composer require ymsoft/telegram-channel-scrapper
高级用法
通过具体ID抓取特殊消息
如果您知道消息ID,您可以获取它
use Ymsoft\TelegramChannelScrapper\TelegramCS; $service = new TelegramCS('channel_name'); /** @var \Ymsoft\TelegramChannelScrapper\Entity\Message\Message $message */ $message = $service->getMessageById(1);
HTTP客户端(自定义头和代理)
如果您想添加自己的头部信息或通过代理发送请求,可以将您的HTTP客户端实例作为第二个参数传递
use Ymsoft\TelegramChannelScrapper\TelegramCS; /* * You can provide any http client that implements psr/http-client * Psr\Http\Client */ $client = new \GuzzleHttp\Client([ 'headers' => [ 'Accept-Language' => 'en-US,en;q=0.9', 'Accept' => 'text/html', ], 'proxy' => 'https://:8125', ]); $service = new TelegramCS('channel_name', $client);
测试
composer test
变更日志
请参阅 CHANGELOG 了解最近更改的更多信息。
贡献
感谢您考虑为TelegramCS包做出贡献!
许可证
MIT许可证(MIT)。请参阅 许可证文件 了解更多信息。