🔥スパルタコードクラブWebページ開発総合クラス3週目-(2)Webページキャプチャ,DB🔥

1465 ワード

Webスクリプト(スクロール)


🩺 リクエストへのリクエスト
🩺 BeautifulSoupパッケージによるフィルタリング

DB


🩺 データベースを使用する理由:
データをよりよく検索するために
🩺 mongoDB:
データベース#データベース#
🩺 robo3T:
MongoDBのデータを可視化できる
🩺 DBには2種類あります.
SQL:行/列の外観を持つ指定されたExcelにデータを格納するのと同様です.データは固定で、分析しやすい(ex.My-SQL、MS-SQLなど)
No-SQL:データをバイナリ形式で格納するDB.1つ以上のデータが同じ値を持つ必要はありません.フリーフォームのデータ・マウントに不利な一貫性(ex.MongoDB)が欠けている可能性があります
🩺 PythonでMongoDBプログラムを操作する
insert/find/update/delete
🩺 今日の宿題:Genie音楽ランキングからランキング、曲名、芸術家名だけを抽出
    import requests
    from bs4 import BeautifulSoup

    from pymongo import MongoClient
    client = MongoClient('localhost', 27017)
    db = client.dbsparta

    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('https://www.genie.co.kr/chart/top200?ditc=M&rtm=N&ymd=20211101',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].strip()
        song = tr.select_one('td.info > a.title.ellipsis').text.strip()
        artist = tr.select_one('td.info > a.artist.ellipsis').text
        print(rank, song, artist)