豆弁ミュージックTOP 250のデータを取得

2554 ワード

参考サイト:https://music.douban.com/top250
詳細ページの情報が豊富なので、今回は詳細ページで爬虫類が行われるので、まず詳細ページに入った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('  : (.*?)
 (.*?)?
 (.*?)?