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
'4차산업혁명의 일꾼 > 데이터 크롤링과 파이썬' 카테고리의 다른 글
금융인을 위한 파이썬 업무자동화 2주차 (0) | 2023.03.27 |
---|---|
스파르타코딩클럽 금융인을 위한 파이썬 업무자동화 1주차 (0) | 2023.03.27 |
파이썬으로 맛집 지도 보기 (0) | 2023.03.21 |
파이썬 - 지니뮤직/네이버 음악/영화rank 순위 데이터 크롤링 (0) | 2022.07.19 |
파이참에서 몽고DB crud 기본 (0) | 2022.07.19 |