from pymongo import MongoClient
import jwt
import datetime
from datetime import datetime, timedelta
import hashlib
from flask import Flask, render_template, jsonify, request, redirect, url_for
import requests
from bs4 import BeautifulSoup
from werkzeug.utils import secure_filename
BeautifulSoup 으로 긁어온다. (soup.select -> css 셀렉터)
긁어 온것을 뿌려준다.
매일 긁어서 뿌려야 하기에
time 을 datetime.now().strftime("%Y%m%d")
하기에 넣어서 긁어오는 시점이 매일의 당일이 된다.
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(f'https://www.genie.co.kr/chart/top200?ditc=M&rtm=N&ymd={time}',
headers=headers)
@app.route("/music", methods=["GET"])
def music_get():
time = datetime.now().strftime("%Y%m%d")
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(f'https://www.genie.co.kr/chart/top200?ditc=M&rtm=N&ymd={time}', headers=headers)
soup = BeautifulSoup(data.text, 'html.parser')
trs = soup.select('#body-content > div.newest-list > div > table > tbody > tr')
music_list = []
a = 0
for tr in trs:
title = tr.select_one('td.info > a.title.ellipsis').text.strip()
rank = tr.select_one('td.number').text[0:2].strip()
artist = tr.select_one('td.info > a.artist.ellipsis').text
# print(rank, title, artist)
if a == 10:
break
doc = {
'rank': rank,
'title': title,
'artist': artist
}
a = a + 1
music_list.append(doc)
# print(music_list)
return jsonify({'music': music_list})
2023년 3월 21일 지니뮤직 음악순(https://www.genie.co.kr/chart/top200?ditc=M&rtm=N)

2023년 3월 21일 지니뮤직 크롤링 음악순

이상 간단 크롤링이었습니다.~~
LIST
'Spring & Backend' 카테고리의 다른 글
| 실용주의 프로그래머 [8장 46 챕터] (0) | 2023.03.22 |
|---|---|
| 클린아키텍쳐 - 소프트웨어의 구조와 설계의 원칙[7부 34장] (0) | 2023.03.21 |
| 파이썬으로 맛집 지도 보기 (0) | 2023.03.21 |
| 네이버 쇼핑 최저가 리스트 만들기 (0) | 2023.03.21 |
| Effective Java 이펙티브 자바 정리[조슈아 블로치] (0) | 2023.03.20 |
