ymsoft/telegram-channel-scrapper

公共Telegram频道抓取器。

1.0.1 2023-11-18 11:37 UTC

This package is auto-updated.

Last update: 2024-09-20 11:59:00 UTC


README

Stand With Ukraine

公共Telegram频道抓取器

Latest Version on Packagist License

PHP from Packagist PHP Composer Total Downloads

此包旨在为需要高效抓取公共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)。请参阅 许可证文件 了解更多信息。