豆弁ミュージックTOP 250のデータを取得
2554 ワード
参考サイト:https://music.douban.com/top250
詳細ページの情報が豊富なので、今回は詳細ページで爬虫類が行われるので、まず詳細ページに入ったURLリンクを爬虫類が取り、さらにデータを爬虫類が取ります.
必要な情報は、歌名、出演者、流派、発行時間、出版者、採点などです.
データはそれぞれTXT、JSON、CSVで格納する.
詳細ページの情報が豊富なので、今回は詳細ページで爬虫類が行われるので、まず詳細ページに入ったURLリンクを爬虫類が取り、さらにデータを爬虫類が取ります.
必要な情報は、歌名、出演者、流派、発行時間、出版者、採点などです.
データはそれぞれTXT、JSON、CSVで格納する.
import re
import csv
import time
import json
import requests
from bs4 import BeautifulSoup
from requests import RequestException
def get_one_page(url):
try:
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36'
+ '(KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36'}
response = requests.get(url, headers=headers)
#response.encoding = response.apparent_encoding
if response.status_code == 200:
return response.text
else:
return None
return None
except RequestException:
return None
def get_detailurl(text):
detailurl = []
soup = BeautifulSoup(text, 'lxml')
nbg = soup.find_all(name='a', class_='nbg')
for i in nbg:
detailurl.append(i['href'])
return detailurl
def parse_one_page(text):
soup = BeautifulSoup(text, 'lxml') # lxml XML
performer = soup.select('#info > span > span > a')
# select, find_all
song = soup.select('#wrapper > h1 > span')
style = re.findall(' : (.*?)
(.*?)?
(.*?)?