Scrapy로 애니메이션 노래 가사 모으기.
개시하다
Scrapy라는 파이톤의 프로그램 라이브러리가 간단하고 쓰기 쉽다는 소문을 듣고 바로 사용해 보았다.
컨디션
안정적인 pyenv+anaconda(Python3)
수집된 데이터
애니메이션 노래 가사면 여기다 맡길까요?
이곳최신 추가곡 페이지에는 7월 31일부터 11월 30일까지 애니메이션 노래의 가사가 추가됐다.
프로그램 만들기
설치하다.
pip를 통해 설치할 수 있습니다.
$ pip install scrapy
프로젝트 작성
이름은 마음대로 정할 수 있다.이번에는 직접 교과서의 이름을 채택했다.
$ scrapy startproject aipa_commander
내용을 확인하다
초보자를 너무 새로 써서 안에 있는 서류가 무슨 뜻인지 전혀 모르겠다.
어쨌든 어느 정도 사용하기 전에 건드리지 마세요.
프로그램 작성
나 같은 초보자가 유일하게 조작하는 디렉터리
aipa_commander (최초 이름 항목 이름)/spiders/
여기서python의 스크립트 파일을 만듭니다.
반복적인 시도와 코딩을 거쳐 결국 이런 느낌으로 변했다.
get_kashi.py# -*- coding: utf-8 -*-
import scrapy
class KashiSpider(scrapy.Spider):
name = 'kashi'
start_urls = ['http://www.jtw.zaq.ne.jp/animesong/tuika.html']
custom_settings = {
"DOWNLOAD_DELAY": 1,
}
def parse(self, response):
for href in response.xpath('//td[2]/a/@href'):
full_url = response.urljoin(href.extract())
yield scrapy.Request(full_url, callback=self.parse_item)
def parse_item(self, response):
kashi = response.xpath('//pre/text()').extract()
kashi = kashi[0].split('\n')
file = open('./歌詞/{}.txt'.format(kashi[0]), 'w')
for j in range(len(kashi)):
file.write(kashi[j]+'\n')
file.close()
단 몇 줄에 200곡의 가사를 한꺼번에 얻을 수 있다니 스캐피는 대단하다.
공식 강좌에 기재된 코드는 이미 매우 많이 참고했기 때문에 코드에 대한 설명은 매우 드물다
다만, 자신이 HTML과 CSS에 대한 지식이 없으면 가장 고전하는 것은response.xpath('//td[2]/a/@href')
또는 response.xpath('//pre/text()').extract()
xpath의 지정입니다.
하지만 그런 나는 구세주 같은 기능을 갖췄다.$scrapy shell "URL"
입력하면
셸 시작>>>sel.xpath('//td[2]/a/@href')
이렇게 하면...[<Selector xpath='//td[2]/a/@href' data='ku/qualidea/brave.html'>,
<Selector xpath='//td[2]/a/@href' data='ku/qualidea/axxxis.html'>,
<Selector xpath='//td[2]/a/@href' data='ku/qualidea/gravity.html'>,
<Selector xpath='//td[2]/a/@href' data='ku/qualidea/yakusoku.html'>,
<Selector xpath='//td[2]/a/@href' data='ku/qualidea/clever.html'>,
<Selector xpath='//td[2]/a/@href' data='to/drefes/pleasure.html'>,
・・・以下省略
이렇게 하면 결과를 간단하게 확인할 수 있다.
셸을 사용하면 원하는 데이터를 하나하나 다시 쓸 필요 없이 간단하게 테스트를 진행할 수 있다.
이것은 정말 편리하기 때문에 학교의 초보자들은 반드시 잘 이용해야 한다.
만약 기회가 있다면, 나는 xpath를 지정할 때의 기술 방법을 쓸 것이다
이번에 사용했어요.xpath(//td[2]/a/@href)
전체<td[2]>
내<a>
httpl://www표를 받다.xpath('//pre/text()').extract()
모든 <pre>
의 텍스트 부분만 가져옵니다.
이런 처리.
실행 결과 $ scrapy crawl kashi
(kashi 부분은name에서 지정한 키워드) 및
이런 느낌의 텍스트 파일 200개를 만들었다.
텍스트 파일의 내용은 다음과 같습니다.
이런 느낌(너무 길다)
끝말
생각보다 쉽게 모아서 감동적이었어요.
다음에도 그림을 시험해 보고 싶어요.
Reference
이 문제에 관하여(Scrapy로 애니메이션 노래 가사 모으기.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/sartan123/items/741658d9e257403306a6
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
안정적인 pyenv+anaconda(Python3)
수집된 데이터
애니메이션 노래 가사면 여기다 맡길까요?
이곳최신 추가곡 페이지에는 7월 31일부터 11월 30일까지 애니메이션 노래의 가사가 추가됐다.
프로그램 만들기
설치하다.
pip를 통해 설치할 수 있습니다.
$ pip install scrapy
프로젝트 작성
이름은 마음대로 정할 수 있다.이번에는 직접 교과서의 이름을 채택했다.
$ scrapy startproject aipa_commander
내용을 확인하다
초보자를 너무 새로 써서 안에 있는 서류가 무슨 뜻인지 전혀 모르겠다.
어쨌든 어느 정도 사용하기 전에 건드리지 마세요.
프로그램 작성
나 같은 초보자가 유일하게 조작하는 디렉터리
aipa_commander (최초 이름 항목 이름)/spiders/
여기서python의 스크립트 파일을 만듭니다.
반복적인 시도와 코딩을 거쳐 결국 이런 느낌으로 변했다.
get_kashi.py# -*- coding: utf-8 -*-
import scrapy
class KashiSpider(scrapy.Spider):
name = 'kashi'
start_urls = ['http://www.jtw.zaq.ne.jp/animesong/tuika.html']
custom_settings = {
"DOWNLOAD_DELAY": 1,
}
def parse(self, response):
for href in response.xpath('//td[2]/a/@href'):
full_url = response.urljoin(href.extract())
yield scrapy.Request(full_url, callback=self.parse_item)
def parse_item(self, response):
kashi = response.xpath('//pre/text()').extract()
kashi = kashi[0].split('\n')
file = open('./歌詞/{}.txt'.format(kashi[0]), 'w')
for j in range(len(kashi)):
file.write(kashi[j]+'\n')
file.close()
단 몇 줄에 200곡의 가사를 한꺼번에 얻을 수 있다니 스캐피는 대단하다.
공식 강좌에 기재된 코드는 이미 매우 많이 참고했기 때문에 코드에 대한 설명은 매우 드물다
다만, 자신이 HTML과 CSS에 대한 지식이 없으면 가장 고전하는 것은response.xpath('//td[2]/a/@href')
또는 response.xpath('//pre/text()').extract()
xpath의 지정입니다.
하지만 그런 나는 구세주 같은 기능을 갖췄다.$scrapy shell "URL"
입력하면
셸 시작>>>sel.xpath('//td[2]/a/@href')
이렇게 하면...[<Selector xpath='//td[2]/a/@href' data='ku/qualidea/brave.html'>,
<Selector xpath='//td[2]/a/@href' data='ku/qualidea/axxxis.html'>,
<Selector xpath='//td[2]/a/@href' data='ku/qualidea/gravity.html'>,
<Selector xpath='//td[2]/a/@href' data='ku/qualidea/yakusoku.html'>,
<Selector xpath='//td[2]/a/@href' data='ku/qualidea/clever.html'>,
<Selector xpath='//td[2]/a/@href' data='to/drefes/pleasure.html'>,
・・・以下省略
이렇게 하면 결과를 간단하게 확인할 수 있다.
셸을 사용하면 원하는 데이터를 하나하나 다시 쓸 필요 없이 간단하게 테스트를 진행할 수 있다.
이것은 정말 편리하기 때문에 학교의 초보자들은 반드시 잘 이용해야 한다.
만약 기회가 있다면, 나는 xpath를 지정할 때의 기술 방법을 쓸 것이다
이번에 사용했어요.xpath(//td[2]/a/@href)
전체<td[2]>
내<a>
httpl://www표를 받다.xpath('//pre/text()').extract()
모든 <pre>
의 텍스트 부분만 가져옵니다.
이런 처리.
실행 결과 $ scrapy crawl kashi
(kashi 부분은name에서 지정한 키워드) 및
이런 느낌의 텍스트 파일 200개를 만들었다.
텍스트 파일의 내용은 다음과 같습니다.
이런 느낌(너무 길다)
끝말
생각보다 쉽게 모아서 감동적이었어요.
다음에도 그림을 시험해 보고 싶어요.
Reference
이 문제에 관하여(Scrapy로 애니메이션 노래 가사 모으기.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/sartan123/items/741658d9e257403306a6
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
설치하다.
pip를 통해 설치할 수 있습니다.
$ pip install scrapy
프로젝트 작성
이름은 마음대로 정할 수 있다.이번에는 직접 교과서의 이름을 채택했다.
$ scrapy startproject aipa_commander
내용을 확인하다
초보자를 너무 새로 써서 안에 있는 서류가 무슨 뜻인지 전혀 모르겠다.
어쨌든 어느 정도 사용하기 전에 건드리지 마세요.
프로그램 작성
나 같은 초보자가 유일하게 조작하는 디렉터리
aipa_commander (최초 이름 항목 이름)/spiders/
여기서python의 스크립트 파일을 만듭니다.
반복적인 시도와 코딩을 거쳐 결국 이런 느낌으로 변했다.
get_kashi.py
# -*- coding: utf-8 -*-
import scrapy
class KashiSpider(scrapy.Spider):
name = 'kashi'
start_urls = ['http://www.jtw.zaq.ne.jp/animesong/tuika.html']
custom_settings = {
"DOWNLOAD_DELAY": 1,
}
def parse(self, response):
for href in response.xpath('//td[2]/a/@href'):
full_url = response.urljoin(href.extract())
yield scrapy.Request(full_url, callback=self.parse_item)
def parse_item(self, response):
kashi = response.xpath('//pre/text()').extract()
kashi = kashi[0].split('\n')
file = open('./歌詞/{}.txt'.format(kashi[0]), 'w')
for j in range(len(kashi)):
file.write(kashi[j]+'\n')
file.close()
단 몇 줄에 200곡의 가사를 한꺼번에 얻을 수 있다니 스캐피는 대단하다.공식 강좌에 기재된 코드는 이미 매우 많이 참고했기 때문에 코드에 대한 설명은 매우 드물다
다만, 자신이 HTML과 CSS에 대한 지식이 없으면 가장 고전하는 것은
response.xpath('//td[2]/a/@href')
또는 response.xpath('//pre/text()').extract()
xpath의 지정입니다.하지만 그런 나는 구세주 같은 기능을 갖췄다.
$scrapy shell "URL"
입력하면셸 시작
>>>sel.xpath('//td[2]/a/@href')
이렇게 하면...[<Selector xpath='//td[2]/a/@href' data='ku/qualidea/brave.html'>,
<Selector xpath='//td[2]/a/@href' data='ku/qualidea/axxxis.html'>,
<Selector xpath='//td[2]/a/@href' data='ku/qualidea/gravity.html'>,
<Selector xpath='//td[2]/a/@href' data='ku/qualidea/yakusoku.html'>,
<Selector xpath='//td[2]/a/@href' data='ku/qualidea/clever.html'>,
<Selector xpath='//td[2]/a/@href' data='to/drefes/pleasure.html'>,
・・・以下省略
이렇게 하면 결과를 간단하게 확인할 수 있다.셸을 사용하면 원하는 데이터를 하나하나 다시 쓸 필요 없이 간단하게 테스트를 진행할 수 있다.
이것은 정말 편리하기 때문에 학교의 초보자들은 반드시 잘 이용해야 한다.
만약 기회가 있다면, 나는 xpath를 지정할 때의 기술 방법을 쓸 것이다
이번에 사용했어요.
xpath(//td[2]/a/@href)
전체<td[2]>
내<a>
httpl://www표를 받다.xpath('//pre/text()').extract()
모든 <pre>
의 텍스트 부분만 가져옵니다.이런 처리.
실행 결과 $ scrapy crawl kashi
(kashi 부분은name에서 지정한 키워드) 및
이런 느낌의 텍스트 파일 200개를 만들었다.
텍스트 파일의 내용은 다음과 같습니다.
이런 느낌(너무 길다)
끝말
생각보다 쉽게 모아서 감동적이었어요.
다음에도 그림을 시험해 보고 싶어요.
Reference
이 문제에 관하여(Scrapy로 애니메이션 노래 가사 모으기.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/sartan123/items/741658d9e257403306a6
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
$ scrapy crawl kashi
생각보다 쉽게 모아서 감동적이었어요.
다음에도 그림을 시험해 보고 싶어요.
Reference
이 문제에 관하여(Scrapy로 애니메이션 노래 가사 모으기.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/sartan123/items/741658d9e257403306a6텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)