참고하면 좋을 파이썬의 파일 열기모드
r,w,a,r+,w+,a+ 여섯가지 모드와 옵션으로 t 또는 b가 붙을 수 있다.
r : 읽기 모드, 파일 없으며 Error
r+ : 읽기 또는 쓰기모드, 파일 없으면 Error
w : 쓰기 모드, 파일 없으면 새로 만든다.
w+ : 읽기 또는 쓰기 모드, 파일 없으면 새로 만든다.
a : 파일 추가(FP가 파일의 끝으로 이동)로 쓰기 모드, 파일 없으면 새로 만든다.
a+ : 읽기 또는 파일 추가 모드
t(텍스트 모드로 파일을 연다), b(바이너리 모드로 파일을 연다)
ex.) w+t는 텍스트 쓰기모드로 파일을 연다는 뜻이다.
이번에는 빌보드 사이트에 들어가서 빌보드 차트 100위까지 곡,아티스트 정보를 가져왔다.
코드는 아래처럼 작성해 보았다.
1 from bs4 import BeautifulSoup
2 import requests
3 import re
4 import csv
5
6 csv_filename = "billboard_chart.csv"
7 csv_open = open(csv_filename,"w+",encoding = 'utf-8')
8 csv_writer = csv.writer(csv_open)
9 csv_writer.writerow(('rank','song','artist'))
10
11 crawling_url = "https://www.billboard.com/charts/hot-100"
12
13 response = requests.get(crawling_url)
14
15 bs = BeautifulSoup(response.text,'html.parser')
16
17 chart_list = bs.find_all('li',{"class":re.compile('chart-list__elements*')})
18
19 for chart in chart_list:
20 rank = chart.find_all('span',{"class":re.compile('chart-element__rank__number')})
21 real_rank = rank[0].text
22 song = chart.find_all('span',{"class":re.compile('chart-element__information__song text--truncate color --primary')})
23 real_song = song[0].text
24 artist = chart.find_all('span',{"class":re.compile('chart-element__information__artist text--truncate co lor--secondary')})
25 real_artist = artist[0].text
26
27 csv_writer.writerow( (real_rank, real_song, real_artist) )
28 csv_open.close()