Scrapy를 사용하여 Kugou Music 노래를 크롤링하는 방법은 무엇입니까?
인터넷이 발달하면서 인터넷에 존재하는 정보의 양이 늘어나고 있으며, 사람들은 다양한 분석과 마이닝을 수행하기 위해 다양한 웹사이트에서 정보를 크롤링해야 합니다. Scrapy는 웹사이트 데이터를 자동으로 크롤링하고 구조화된 형식으로 출력할 수 있는 완전한 기능을 갖춘 Python 크롤러 프레임워크입니다. Kugou Music은 가장 인기 있는 온라인 음악 플랫폼 중 하나입니다. 아래에서는 Kugou Music의 노래 정보를 크롤링하기 위해 Scrapy를 사용하는 방법을 소개하겠습니다.
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 프로젝트에서 크롤러는 특정 웹사이트의 데이터를 크롤링하고 구문 분석하는 데 사용되는 프로그램입니다. "kuwo_music" 프로젝트 디렉터리에서 다음 명령을 실행합니다.
scrapy genspider kuwo www.kuwo.cn
위 명령을 실행하면 "kuwo_music/spiders" 디렉터리에 "kuwo.py"라는 파일이 생성됩니다. 이는 크롤러 프로그램 코드입니다. 이 파일에서 웹사이트 데이터의 크롤링 및 구문 분석 프로세스를 정의해야 합니다.
4. 웹사이트 요청 및 페이지 구문 분석
새 "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 노래 정보가 있는 웹 페이지를 분석해야 합니다.
브라우저를 열고 www.kuwo.cn을 방문하여 검색창에 노래 이름을 입력하고 검색하면 해당 웹페이지가 검색 결과 페이지로 이동하는 것을 확인할 수 있습니다. 검색 결과 페이지에서는 곡명, 아티스트, 재생 시간 등 각 곡에 대한 관련 정보를 확인할 수 있습니다. Scrapy를 통해 요청을 보내고 검색 결과 페이지를 구문 분석하여 각 노래의 세부 정보를 가져와야 합니다.
크롤러 프로그램 코드에서는 다음 두 가지 메소드를 구현해야 합니다.
def start_requests(self): ... def parse(self, response): ...
그 중 start_requests() 메소드는 초기 웹 페이지 요청을 보내는 데 사용되며 구문 분석 메소드인parse()는 콜백으로 지정됩니다. 함수; 구문 분석() 메서드는 웹 페이지를 구문 분석하고, 데이터를 추출하고, 응답을 처리하는 데 사용됩니다. 구체적인 코드는 다음과 같습니다.
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을 구성한 후 요청을 보냅니다. pars() 메소드에서는 검색 결과 페이지를 구문 분석하고 노래 이름, 아티스트, 앨범 등 각 노래에 대한 관련 정보를 추출합니다. 그런 다음 각 노래의 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
위는 Kugou Music의 노래 정보를 크롤링하기 위해 Scrapy 프레임워크를 사용하는 방법에 대한 자세한 소개입니다. 참고 및 도움이 되기를 바랍니다.
위 내용은 Scrapy를 사용하여 Kugou Music 노래를 크롤링하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Kugou Music APP에서 자동 멤버십 갱신을 취소하는 방법은 무엇입니까? Kugou Music의 VIP 자동 갱신 서비스를 신청한 사용자가 많습니다. 나중에 이 서비스를 취소하고 싶지만 취소할 곳을 모르시는 경우 아래에서 자동 취소 방법에 대한 튜토리얼을 알려 드리겠습니다. -Kugou Music의 리뉴얼이 모든 분들께 도움이 되기를 바랍니다. Kugou Music 앱에서 자동 갱신을 취소하는 것은 매우 간단합니다. 회원 센터에 들어가서 음악 패키지/럭셔리 VIP 옵션을 찾아 자동 갱신 활성화를 선택한 다음 클릭하여 갱신을 종료하세요. 2. WeChat: 아래 그림과 같이 결제 페이지로 이동하여 오른쪽 상단에 있는 세 개의 점을 클릭하고 공제 서비스를 선택한 다음 Kugou Music을 클릭하여 서비스를 종료합니다. 3. Alipay: 설정 페이지로 이동합니다. 결제 설정을 선택하고 비밀번호 없는 결제/수수료 자동 공제를 선택하고 마지막으로 Kugou Music을 선택하여 계약을 해지합니다.

Kugou Music 앱 소프트웨어는 공식적으로 승인된 수많은 음악 노래를 제공하며, 언제 어디서나 들을 수 있으며, 모든 노래는 언제든지 무료로 제공되며 아름다운 노래가 귀에 울려 퍼집니다. 다양한 시스템의 휴대폰 사용자를 위한 온라인 다운로드를 지원합니다. 계정과 비밀번호를 입력하여 로그인할 수 있습니다. 한 번의 클릭으로 다양한 스타일의 음악 작품을 찾을 수도 있습니다. 사운드 효과 모드를 사용하면 전반적인 청취 분위기를 더욱 몰입감 있게 만들 수 있으며, 파노라마 바이퍼 사운드 효과를 끌 수도 있고, 다른 상황에서 청취 모드를 자유롭게 경험하고, 독점 음악 재생 목록을 사용자 정의 및 생성하고, 온라인으로 음악 링크를 공유하고, 완전히 릴리스할 수도 있습니다. 이제 편집자는 Kugou Music 사용자에게 온라인으로 Viper Atmos를 끄는 단계에 대한 세부 정보를 제공합니다. 1. Kugou Music을 열고 Kugou Music의 주요 영역으로 들어갑니다.

1. 하나의 Kugou Music 회원 계정은 휴대폰, 컴퓨터, 태블릿 등 최대 [5대 기기]에서 사용할 수 있습니다. 2. 단, 동일한 계정은 동일한 기간 내에 [두 개의 기기]에서만 동시에 사용할 수 있습니다. 3. 세 번째 기기가 동시에 로그인하면 첫 번째 기기는 자동으로 로그아웃됩니다.

1. Kugou Music을 열고 프로필 사진을 클릭하세요. 2. 오른쪽 상단의 설정 아이콘을 클릭하세요. 3. [음악작품 업로드]를 클릭하세요. 4. [작품 업로드]를 클릭하세요. 5. 노래를 선택하고 [다음]을 클릭하세요. 6. 마지막으로 [업로드]를 클릭하세요.

1. Kugou Music 앱을 열고 [내]를 클릭한 후 [회원센터]를 선택하고 회원센터 인터페이스로 들어갑니다. 2. 인터페이스 하단의 [회원 설정]을 클릭하고 [자동 갱신] 스위치를 끕니다. 3. 팝업창의 [확인] 버튼을 클릭하여 자동 갱신 해제를 확인하세요. 4. 현재 사용자는 Kugou Music의 자동 회원 갱신 기능을 성공적으로 해제했습니다.

Kugou Music은 대중적인 음악 플레이어 소프트웨어이며 노래 다운로드 기능도 사용자들 사이에서 매우 인기가 있습니다. 그러나 캐싱이 필요한 경우 많은 사용자가 노래 다운로드 디렉터리 설정 방법을 모르기 때문에 다운로드한 음악 파일을 관리하고 찾기가 어려울 수 있습니다. 그렇다면 Kugou Music에서 다운로드 위치를 수정하는 방법은 무엇입니까? 다음 튜토리얼 가이드는 캐시 위치를 수정하는 단계에 대한 자세한 소개를 제공합니다. 아직 모르는 사람들에게 도움이 되기를 바랍니다. Kugou Music 다운로드 경로를 설정하는 방법 1. Kugou Music 앱을 열고 오른쪽 하단에 있는 My를 클릭합니다. 2. 오른쪽 상단에 있는 세 개의 수평선 아이콘을 클릭하세요. 3. 노래 다운로드 디렉토리를 클릭하고 설정을 입력하세요.

모든 노래를 무료로 재생할 수 있는 음악 소프트웨어가 있습니까? 노래 듣기 소프트웨어는 Kugou Music, QQ Music, NetEase Cloud Music, Migu Music 및 Kuwo Music에서 모든 노래를 무료로 들을 수 있습니다. "Kugou Music": 최초의 음악 소프트웨어 중 하나인 Kugou Music에는 정말 흥미로운 콘텐츠가 많이 있습니다. 어떤 종류의 트랙을 듣고 싶든 음악을 듣는 것은 휴식을 취하는 좋은 방법입니다. "KuWo Music" 소프트웨어에는 비교적 많은 수의 트랙이 포함되어 있습니다. 일부 인기 음악 프로그램의 노래는 여기에서 찾을 수 있습니다. 모든 다운로드는 무료로 제공되므로 수년 동안 매우 인기가 높습니다. "Love Music"은 매우 실용적인 무료 음악 청취 소프트웨어입니다. 여기에는 다양한 오리지널 곡이 있습니다. 사용자는 자신의 취향에 따라 자유롭게 검색할 수 있으며 전용 곡도 있습니다.

1. 먼저 Kugou 재생 목록의 스크린샷을 찍은 다음 NetEase Cloud Music을 엽니다. 2. 내를 클릭하고 재생목록 옆에 있는 세 개의 점을 클릭하세요. 3. 외부 재생 목록을 가져오려면 클릭하세요. 4. 방금 스크린샷을 찍은 Kugou 재생목록을 업로드하고 가져올 수 있습니다.
