[crawling]연습 2.빌보드 차트

hyeyul·2020년 5월 13일
0

Crawling

목록 보기
2/2

파일 열기 모드

참고하면 좋을 파이썬의 파일 열기모드

  • r,w,a,r+,w+,a+ 여섯가지 모드와 옵션으로 t 또는 b가 붙을 수 있다.

  • r : 읽기 모드, 파일 없으며 Error

  • r+ : 읽기 또는 쓰기모드, 파일 없으면 Error

  • w : 쓰기 모드, 파일 없으면 새로 만든다.

  • w+ : 읽기 또는 쓰기 모드, 파일 없으면 새로 만든다.

  • a : 파일 추가(FP가 파일의 끝으로 이동)로 쓰기 모드, 파일 없으면 새로 만든다.

  • a+ : 읽기 또는 파일 추가 모드

  • t(텍스트 모드로 파일을 연다), b(바이너리 모드로 파일을 연다)
    ex.) w+t는 텍스트 쓰기모드로 파일을 연다는 뜻이다.

    • w+의 경우 기존 파일에 있던 데이터를 완전 지워버리고 새로 쓴다.
    • r+의 경우 기존 파일내용은 그대로 두고 그 위에 덮어 쓰기를 한다.

빌보드차트 웹크롤링

이번에는 빌보드 사이트에 들어가서 빌보드 차트 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()

0개의 댓글