ホームページ バックエンド開発 Python チュートリアル Scrapy を使用して Kugou Music の曲をクロールする方法は?

Scrapy を使用して Kugou Music の曲をクロールする方法は?

Jun 22, 2023 pm 10:59 PM
這う scrapy クゴウミュージック

インターネットの発展に伴い、インターネット上の情報量は増加しており、さまざまな分析やマイニングを行うために、さまざまな Web サイト上の情報をクローリングする必要があります。 Scrapy は、Web サイトのデータを自動的にクロールし、構造化された形式で出力できる、完全に機能する Python クローラー フレームワークです。 Kugou Music は最も人気のあるオンライン音楽プラットフォームの 1 つであり、以下では Scrapy を使用して Kugou Music の曲情報をクロールする方法を紹介します。

1. Scrapy のインストール

Scrapy は Python 言語をベースにしたフレームワークであるため、最初に Python 環境を設定する必要があります。 Scrapy をインストールする前に、まず Python と pip ツールをインストールする必要があります。インストールが完了したら、次のコマンドを使用して Scrapy をインストールできます:

pip install scrapy
ログイン後にコピー

2. 新しい Scrapy プロジェクトを作成します

Scrapy は、次のコマンド ライン ツールのセットを提供します。新しいプロジェクトの作成を容易にします。コマンドラインに次のコードを入力します:

scrapy startproject kuwo_music
ログイン後にコピー

実行後、「kuwo_music」という名前の Scrapy プロジェクトが現在のディレクトリに作成されます。このプロジェクトでは、Kugou Music の曲情報をクロールするための新しいクローラーを作成する必要があります。

3. 新しいクローラーの作成

Scrapy プロジェクトでは、クローラーは特定の Web サイト上のデータをクロールおよび解析するために使用されるプログラムです。 「kuwo_music」プロジェクト ディレクトリで、次のコマンドを実行します。

scrapy genspider kuwo www.kuwo.cn 
ログイン後にコピー

上記のコマンドにより、「kuwo_music/spiders」ディレクトリに「kuwo.py」という名前のファイルが作成されます。これは、クローラー プログラム コードです。このファイルで Web サイト データのクローリングと解析のプロセスを定義する必要があります。

4. Web サイトのリクエストとページの解析

新しく作成した「kuwo.py」ファイルで、まず必要なモジュールをインポートする必要があります:

import scrapy
from kuwo_music.items import KuwoMusicItem
from scrapy_redis.spiders import RedisSpider
from scrapy_redis import get_redis_from_settings
from scrapy.utils.project import get_project_settings
ログイン後にコピー

上記のコードを通じて、Scrapy フレームワークによって提供されるさまざまなツール クラスとメソッド、およびプロジェクト内のカスタム モジュールを使用できます。クローラー コードの作成を続ける前に、まず Kugou Music の曲情報が置かれている Web ページを分析する必要があります。

ブラウザを開いて www.kuwo.cn にアクセスし、検索バーに曲名を入力して検索すると、Web ページが検索結果ページにジャンプすることがわかります。検索結果ページでは、曲名、アーティスト、再生時間など、各曲の関連情報が表示されます。 Scrapy を通じてリクエストを送信し、検索結果ページを解析して各曲の詳細情報を取得する必要があります。

クローラ コードでは、次の 2 つのメソッドを実装する必要があります:

def start_requests(self):
    ...
    
def parse(self, response):
    ...
ログイン後にコピー

そのうち、start_requests() メソッドは最初の Web ページ リクエストの送信に使用され、解析メソッドは parse です。 () はコールバック関数として指定され、parse() メソッドは Web ページの解析、データの抽出、応答の処理に使用されます。具体的なコードは次のとおりです。

class KuwoSpider(RedisSpider):
    name = 'kuwo'
    allowed_domains = ['kuwo.cn']
    redis_cli = get_redis_from_settings(get_project_settings())

    def start_requests(self):
        keywords = ['爱情', '妳太善良', '说散就散']
        # 搜索结果页面的url
        for keyword in keywords:
            url = f'http://www.kuwo.cn/search/list?key={keyword}&rformat=json&ft=music&encoding=utf8&rn=8&pn=1'
            yield scrapy.Request(url=url, callback=self.parse)

    def parse(self, response):
        data = json.loads(response.text)
        # 获取搜索结果页面的每个歌曲信息
        song_list = data['data']['list']
        for song in song_list:
            music_id = song['musicrid'][6:]
            song_name = song['name']
            singer_name = song['artist']
            album_name = song['album']

            # 根据歌曲id获取歌曲详细信息
            url = f'http://www.kuwo.cn/url?format=mp3&rid=MUSIC_{music_id}&response=url&type=convert_url3&br=128kmp3&from=web&t=1639056420390&httpsStatus=1&reqId=6be77da1-4325-11ec-b08e-11263642326e'
            meta = {'song_name': song_name, 'singer_name': singer_name, 'album_name': album_name}
            yield scrapy.Request(url=url, callback=self.parse_song, meta=meta)

    def parse_song(self, response):
        item = KuwoMusicItem()
        item['song_name'] = response.meta.get('song_name')
        item['singer_name'] = response.meta.get('singer_name')
        item['album_name'] = response.meta.get('album_name')
        item['song_url'] = response.text.strip()
        yield item
ログイン後にコピー

上記のコードでは、まず start_requests() メソッドで検索する曲のキーワードを定義し、各曲の検索結果ページの URL を構築してリクエストを送信します。 parse() メソッドでは、検索結果ページを解析し、曲名、アーティスト、アルバムなど、各曲に関する関連情報を抽出します。次に、各曲の ID に基づいて、対応する曲情報を取得するための URL を構築し、Scrapy のメタデータ (メタ) メカニズムを使用して、曲名、歌手、アルバムなどの情報を転送します。最後に、曲情報ページを解析し、parse_song() メソッドで曲の再生アドレスを抽出し、カスタム KuwoMusicItem オブジェクトに出力します。

5. データ ストレージと使用

上記のコードでは、クロールされた曲情報を保存するカスタム KuwoMusicItem オブジェクトを定義します。ツール クラス RedisPipeline を使用して、クロールされたデータを Redis データベースに保存できます:

ITEM_PIPELINES = {
    'kuwo_music.pipelines.RedisPipeline': 300,
}
ログイン後にコピー

同時に、ツール クラス JsonLinesItemExporter を使用してデータをローカル CSV ファイルに保存することもできます:

from scrapy.exporters import JsonLinesItemExporter
import csv

class CsvPipeline(object):
    # 将数据存储到csv文件
    def __init__(self):
        self.file = open('kuwo_music.csv', 'w', encoding='utf-8', newline='')
        self.exporter = csv.writer(self.file)
        self.exporter.writerow(['song_name', 'singer_name', 'album_name', 'song_url'])

    def close_spider(self, spider):
        self.file.close()

    def process_item(self, item, spider):
        self.exporter.writerow([item['song_name'], item['singer_name'], item['album_name'], item['song_url']])
        return item
ログイン後にコピー

最後に、コマンド ラインで次のコマンドを実行して Scrapy クローラーを開始します:

scrapy crawl kuwo
ログイン後にコピー

上記は、Scrapy フレームワークを使用して Kugou Music の曲情報をクロールする方法の詳細な紹介です。参考にしていただければ幸いです。

以上がScrapy を使用して Kugou Music の曲をクロールする方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Kugou Music APP会員の自動更新と解約の手順 Kugou Music APP会員の自動更新と解約の手順 Mar 19, 2024 pm 07:28 PM

Kugou Music APP の会員自動更新をキャンセルするにはどうすればよいですか? Kugou Music の VIP 自動更新サービスを申し込んでいるユーザーがたくさんいますが、後でこのサービスをキャンセルしたいのですが、どこでキャンセルすればよいかわかりません。以下に、自動更新サービスをキャンセルする方法について説明します。 - Kugou Music をリニューアルしました 皆様のお役に立てれば幸いです。 Kugou Music APP で自動更新をキャンセルするのは非常に簡単です。メンバー センターに入り、音楽パッケージ/高級 VIP オプションを見つけて、自動更新を有効にするを選択し、クリックして更新を閉じるだけです。 2. WeChat: 下の図に示すように、支払いページに移動し、右上隅の 3 つの点をクリックして控除サービスを選択し、Kugou Music をクリックしてサービスを閉じます; 3. Alipay: 設定ページに移動し、支払い設定を選択し、パスワードなしの支払い/料金の自動引き落としを選択し、最後に Kugou Music を選択して契約を終了します。

Kugou Music で Viper Panorama をオフにする方法. Viper Panorama をオフにする手順。 Kugou Music で Viper Panorama をオフにする方法. Viper Panorama をオフにする手順。 Mar 12, 2024 pm 03:00 PM

Kugou Music アプリ ソフトウェアでは、公式に認定された多数の音楽曲が提供され、いつでもどこでも聴くことができ、すべて永久に無料オンデマンドで、美しい曲が耳に響きます。さまざまなシステムの携帯電話ユーザー向けのオンライン ダウンロードをサポートしています。アカウントとパスワードを入力してログインできます。さまざまなスタイルの音楽作品が無料です。ワンクリックで曲名を入力して検索できます。また、異なるスタイルに切り替えることもできます。パノラマバイパー効果音をオフにすることもでき、他の状況でリスニングモードを自由に体験したり、専用の音楽プレイリストをカスタマイズして作成したり、音楽リンクをオンラインで共有したり、完全にリリースしたりすることもできます。これで、エディターはオンラインの Kugou Music ユーザーに Viper Atmos をオフにする手順の詳細を提供します。 1. Kugou Music を開き、Kugou Music のメイン領域に入ります

Kugou に独自の音楽をアップロードする簡単な手順 Kugou に独自の音楽をアップロードする簡単な手順 Mar 25, 2024 pm 10:56 PM

1. Kugou Music を開き、プロフィール写真をクリックします。 2. 右上隅にある設定アイコンをクリックします。 3. [音楽作品をアップロード]をクリックします。 4. [作品アップロード]をクリックします。 5. 曲を選択し、[次へ]をクリックします。 6. 最後に[アップロード]をクリックします。

Kugou Music は複数のデバイスにログインできます Kugou Music は複数のデバイスにログインできます Apr 08, 2024 pm 05:15 PM

1. 1つのKugou Music会員アカウントで、携帯電話、パソコン、タブレットなど最大【5台】の端末でご利用いただけます。 2. ただし、同一アカウントを同一期間内に同時に利用できるのは【2台の端末】のみです。 3. 3 台目のデバイスが同時にログインすると、1 台目のデバイスは自動的にログアウトします。

Kugou Musicの自動更新を解除する方法 Kugou Musicの自動更新を解除する方法 Mar 25, 2024 pm 04:33 PM

1. Kugou Music アプリを開き、[マイ] をクリックし、[メンバー センター] を選択して、メンバー センター インターフェイスに入ります。 2. インターフェース下部の[会員設定]をクリックし、[自動更新]スイッチをオフにします。 3. ポップアップウィンドウの[OK]ボタンをクリックして、自動更新をオフにすることを確認します。 4. この時点で、ユーザーは Kugou Music の会員自動更新機能をオフにすることに成功しました。

Kugou Music のダウンロード パスを設定する方法 Kugou Music のダウンロード パスを設定する方法 Apr 07, 2024 pm 06:30 PM

Kugou Music は人気のある音楽プレーヤー ソフトウェアであり、その曲のダウンロード機能もユーザーの間で非常に人気があります。ただし、キャッシュが必要な場合、多くのユーザーは曲のダウンロード ディレクトリの設定方法がわからないため、ダウンロードした音楽ファイルの管理と検索が困難になります。では、Kugou Music でダウンロード場所を変更するにはどうすればよいでしょうか? 次のチュートリアル ガイドでは、キャッシュの場所を変更する手順を詳しく説明します。まだ知らない方の助けになれば幸いです。 Kugou Music のダウンロード パスを設定する方法 1. Kugou Music アプリを開き、右下隅にある [My] をクリックします。 2. 右上隅にある 3 本の水平線のアイコンをクリックします。 3. 曲のダウンロード ディレクトリをクリックし、設定を入力します。

パソコンで音楽を聴くための無料ソフト パソコンで音楽を聴くための無料ソフト Apr 03, 2024 pm 01:04 PM

全曲無料で再生できる音楽ソフトはありますか? 歌聴きソフトは、Kugou Music、QQ Music、NetEase Cloud Music、Migu Music、Kuwo Music で全曲無料で聴くことができます。 「Kugou Music」: Kugou Music は初期の音楽ソフトウェアの 1 つとして、本当に刺激的なコンテンツがたくさんあります。どんな種類の曲を聴きたいとしても、音楽を聴くことはリラックスするのに良い方法です。ソフトウェア「Kuwo Music」には、比較的多くのトラックが含まれています。非常に人気のある音楽プログラムの曲がここにあります。ダウンロードはすべて無料です。音質は非常に保証されているため、長年にわたって非常に人気があります。高い。 「Love Music」は、非常に実用的な無料の音楽リスニングソフトウェアです。オリジナル曲が充実しています。好みに応じて自由に検索でき、専用の曲もあります。

Kugou Music をローカル コンピューターにダウンロードする方法. Kugou Music をローカル コンピューターにダウンロードする方法に関するチュートリアル。 Kugou Music をローカル コンピューターにダウンロードする方法. Kugou Music をローカル コンピューターにダウンロードする方法に関するチュートリアル。 Mar 28, 2024 pm 01:20 PM

Kugou 音楽は日常生活の退屈を紛らわすのに役立ちます。私たちはたくさんの良い曲、特に映画やテレビのバラエティ番組の一部の曲を聞くことができます。それらは探しさえすれば出てきて、誰でも聞くことができます。ローカルで聴きたい曲をダウンロードするにはどうすればよいですか? 知らない友人も多いので、興味がある人のために、編集者がローカル コンピュータに曲をダウンロードするためのガイドをまとめました。この Web サイトにアクセスして、これを確認してみましょう。ガイド. 皆様のお役に立てれば幸いです。 Kugou Music をローカル コンピュータにダウンロードするためのチュートリアル 1. まず Kugou Music を開き、Kugou Music ページでダウンロードしたい音楽をクリックします; 2. 次に、この音楽のページに入り、[三点アイコン] をクリックします。右下隅 ; 3. をクリックした後

See all articles