aportela/

scraper-lyrics

自定义PHP歌词爬虫

1.0.7 2024-01-31 21:55 UTC

This package is auto-updated.

Last update: 2024-09-30 01:18:23 UTC


README

自定义PHP歌词爬虫

安装(Composer)依赖

composer require aportela/scraper-lyrics

警告

请合理使用,以防止源提供者修改或禁止此爬虫的操作。请将结果缓存到您自己的存储或数据库中,以避免重复相同的调用。同时,尽量避免每秒进行多次调用,这可能会被视为DDOS攻击。

代码示例

require "vendor/autoload.php";

$logger = new \Psr\Log\NullLogger("");

$lyrics = new \aportela\ScraperLyrics\Lyrics($logger);

/**
Search/Scrap on all providers
*/
if ($lyrics->scrap(
    "Bohemian Rhapsody",
    "Queen"
)) {
    echo sprintf(
        "<H1>Title: %s</h1><H2>Artist: %s</H2><H3>Source: %s</H3><PRE>%s</PRE>",
        $lyrics->title,
        $lyrics->artist,
        $lyrics->source,
        $lyrics->lyrics
    );
}

/**
    Search/Scrap on custom scrap providers
    You can use this method if at some point in the future a provider stops working and you want to ignore scraping with him (which will give an error) in case you previously used the global (scrap) method
*/
if ($lyrics->scrap(
    "Bohemian Rhapsody",
    "Queen",
    [
        \aportela\ScraperLyrics\SourceProvider::SEARCH_ENGINE_DUCKDUCKGO,
        \aportela\ScraperLyrics\SourceProvider::SEARCH_ENGINE_GOOGLE
    ]
)) {
    echo sprintf(
        "<H1>Title: %s</h1><H2>Artist: %s</H2><H3>Source: %s</H3><PRE>%s</PRE>",
        $lyrics->title,
        $lyrics->artist,
        $lyrics->source,
        $lyrics->lyrics
    );
}

/**
    Search/Scrap on custom source provider
    Same as the previous one but for a single source provider
*/

if ($lyrics->scrapFromSourceProvider(
    "Bohemian Rhapsody",
    "Queen",
    \aportela\ScraperLyrics\SourceProvider::SEARCH_ENGINE_DUCKDUCKGO
)) {
    echo sprintf(
        "<H1>Title: %s</h1><H2>Artist: %s</H2><H3>Source: %s</H3><PRE>%s</PRE>",
        $lyrics->title,
        $lyrics->artist,
        $lyrics->source,
        $lyrics->lyrics
    );
}

PHP Composer