SMALL
웹 크롤링이란?
Web상에 존재하는 Contents를 수집하는 작업이다. 즉 지금 현재 웹페이지에서 F12 를 누르게 되면 개발자 도구가 뜬다.
이 HTML 중에서 내용들을 가져올수 있는것이 웹 크롤링이다.
하는 방법
제일먼저 설치 하나를 해야한다. bs4 를 설치하자
pip install bs4
설치가 완료 되면 아래에 만든 코드를 보자.
import requests
from bs4 import BeautifulSoup
URL = "https://www.genie.co.kr/chart/top200?ditc=M&rtm=N&ymd=20230101"
headers = {'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'}
data = requests.get(URL, headers=headers)
soup = BeautifulSoup(data.text, 'html.parser')
trs = soup.select('#body-content > div.newest-list > div > table > tbody > tr')
for tr in trs:
rank = tr.select_one('td.number').text[0:2]
print(rank)
title = tr.select_one('.title.ellipsis').text
print(title.strip())
artist = tr.select_one('.artist.ellipsis').text
print(artist.strip())
먼저 URL 를 정한다. 나는 지니 뮤직의 순위를 가져오고 싶어 지니 뮤직의 순위 사이트를 가져 왔다.
이중에 봐야되는 점은
trs = soup.select('#body-content > div.newest-list > div > table > tbody > tr')
이 구문이다 F12 누르고 원하는 레이아웃을 선택 한뒤 Copy -> selected Copy 가 있을것이다. 복사하고 붙여 놓고 그중에서 반복되는 tr 같은 것을 위와 같은 형식으로 넣는다. 그다음 for 문을 통해 원하는 contents 를 가져오는것이다.
반응형
LIST
'Flask' 카테고리의 다른 글
Flask 에서 MongoDB (0) | 2023.05.15 |
---|---|
Flask route, jsonify (0) | 2023.05.14 |
Flask 란? (0) | 2023.05.13 |