[Sparta]Web開発#3週間


python


Pythonがインストールされていることを意味しますか?
Python翻訳パッケージがインストールされています.
=パソコンを聞き取りやすい言語に翻訳してください!翻訳パッケージをインストールしました~!
Pythonのメリット
JavaScriptより直感的!
ゴマ粒に気をつけて!
実行時にマウスの右ボタン->run"hello"を押す必要があります

Pythonの基礎文法


<変数、データ型、関数、条件文、繰返し文>


間違いを確認する秘訣!

①誤った説明
②間違いの箇所
->Googleエラー説明!すでに多くの人がアップしているので参考にしてみます~~

変数&基本演算



データ型


数字、文字



List,Dictionary(Jsに似ています!)




n.関数


JavaScriptの関数は?function
Pythonの関数は?def
❕(f(x))は勝手に決めることができます!

プログラム内の関数とは?
✔指定された動作を実行する(変数を受け入れるかどうかにかかわらず)

条件文


✔if/elseに設定

複文


✔pythonの繰り返し文は、リスト要素を1つずつ抽出して書き込む形式です!



❕pythonの重複文は常にlistと一緒に使用されます~!

python package


✔pythonは膨大なライブラリで有名です
💡 パッケージ:モジュール(機能セット)のセット
💡 ライブラリ:これらのパッケージのセット
つまり!パッケージのインストール=外部ライブラリのインストール
💡 仮想環境(virtual environment)
:各プロジェクトのパッケージをツールボックスに入れます.すなわち、独立した実行環境です.
💬 うん…!今のところバーチャル環境がどんな感じなのかは不明ですが…!
  • リクエストパッケージのインストール方法
    file->setting->プロジェクトインタプリタ->+ボタン->検索要求->install package->ok->完了
  • スクロール(Web scraping)


    スクロール?
    GoogleまたはNAVERの検索エンジンは私のウェブサイトの行為を伝播します.
    💡 スクロール中のキーテクノロジー
    リクエスト
    ✔要求されたhtmlから欲しい情報を絞り出す

    リクエスト、美容グループ4ライブラリ使用


    ゞ❕此时!ゞ
    リクエストライブラリにリクエストし、美容グループ4ライブラリにフィルタリング
    💡 beutifulsスープ4から導入する場合
    ✔タグの属性を取得する場合->タグ[属性]
    タグのテキストを取得するとき->タグ.text

    スクロール練習

    import requests
    from bs4 import BeautifulSoup
    
    # URL을 읽어서 HTML를 받아오고,
    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://movie.naver.com/movie/sdb/rank/rmovie.nhn?sel=pnt&date=20200303',headers=headers)
    
    # HTML을 BeautifulSoup이라는 라이브러리를 활용해 검색하기 용이한 상태로 만듦
    soup = BeautifulSoup(data.text, 'html.parser')
    
    # select를 이용해서, tr들을 불러오기
    movies = soup.select('#old_content > table > tbody > tr')
    
    # movies (tr들) 의 반복문을 돌리기
    for movie in movies:
        # movie 안에 a 가 있으면,
        a_tag = movie.select_one('td.title > div > a')
        if a_tag is not None:
            rank = movie.select_one('td:nth-child(1) > img')['alt'] # img 태그의 alt 속성값을 가져오기
            title = a_tag.text                                      # a 태그 사이의 텍스트를 가져오기
            star = movie.select_one('td.point').text                # td 태그 사이의 텍스트를 가져오기
            print(rank,title,star)

    DB


    mongody:データベース(実行時非表示)
    Robo 3 T:mongodbデータ可視化プログラム
    💡 データベースの概要
    なぜデータベースを使用するのですか?
    10004のデータを使いやすくします!
    ✔ex)本棚を書く理由は、後で良い本を探して、本を積み上げるためです~~
    💡 データベースのタイプ

  • SQL
    ✔所与の行/列にデータを格納するEXCELと同様
    ✔利点:構造化データの抽出方法の最適化
    ✔短所:途中で交換しにくい
    ✔ex)MS-SQL、My-SQL等

  • NoSQL
    データをバイナリ形式で格納するDB
    ✔異なるデータは異なる値を有する
    ✔メリット:データを柔軟に変更する.
    ✔ ex) MongoDB
  • pymongo操作DBを使用する


    ゞ❕此时!ゞ
    他人が作成したpymongoというライブラリを使用し、Pythonを使用してMongoデバイスを操作します.

    < insert / find / update / delete >


    💡 Insert(保存)
    doc = {'name':'bobby','age':21}
    db.users.insert_one(doc)
    💡 find(複数検索)
    same_ages = list(db.users.find({},{'_id':False}))
    
    for person in same_ages:
        print(person)
      
      
    #결과값
    {'name': 'bobby', 'age': 21}
    {'name': 'john', 'age': 27}
    {'name': 'smith', 'age': 30}
    {'name': 'jane', 'age': 21}
    
    💡 find one(特定の値のみ検索)
    user = db.users.find_one({'name':'bobby'})
    print(user)
    💡 update one(置換)
    # name이 bobby인 애를 찾아서 age를 19로 update해라!
    db.users.update_one({'name':'bobby'},{'$set':{'age':19}}) 
    
    💡 delete one(クリア)
    # name이 bobby인 애를 찾아서 delete해라!
    db.users.delete_one({'name':'bobby'})

    Webスクリプト結果の保存


    モンゴルのデフォルト設定を読み込み
    ✔docの作成と挿入
    doc = {
                'rank' : rank,
                'title' : title,
                'star' : star
            }
            db.movies.insert_one(doc)
            

    quiz


    ✔find one練習
    <マトリックスムービースコア取得>
    ▶▼私のコード
    target_movie = db.movies.find_one({'title':'매트릭스'})['star']
    print(target_movie)
    ▶▼▼模範コード
    target_movie = db.movies.find_one({'title':'매트릭스'})
    print (target_movie['star'])
    💬 printの前にstar movie自体から['star'値を抽出し、模範解答ではまずマトリックスというタイトルの映画を見つけ、printから['star'を抽出しました.両者の違いはどのような影響を及ぼすのでしょうか.
    練習する
    「マトリックススコアと同じ映画カタログをもたらす」
    target_movie = db.movies.find_one({'title':'매트릭스'})
    target_star = target_movie['star']
    
    movies = list(db.movies.find({'star':target_star}))
    
    for movie in movies:
        print(movie['title'])
    💬 ここではfor movie in moviesの使い方を正しく理解していないようです.もう一度復習が必要みたい…!
    ->リストにdictionaryが含まれている場合は、for in反復文として出力します.
    ✔update one練習
    <マトリックス映画を0に採点する>
    db.movies.update_one({'title':'매트릭스'},{'$set':{'star':0}})

    3週目の作業


    💡 pythonからスペースを削除
    .strip():前後のスペースを削除
    ▶▼私のコード
    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=D&ymd=20200403&hh=23&rtm=N&pg=1' ,headers=headers)
    
    soup = BeautifulSoup(data.text, 'html.parser')
    
    musics = soup.select('#body-content > div.newest-list > div > table > tbody > tr')
    
    for music in musics:
        title = music.select_one('td.info > a.title.ellipsis').text.strip()
        rank = music.select_one('td.number')
        name = music.select_one('td.info > a.artist.ellipsis').text
        print(rank, title, name)
        
    >결과값
    <td class="number">1
                                            
                                        <span class="rank">
    <span class="rank"><span class="rank-up">1<span class="hide">상승</span></span></span>
    </span>
    </td> 아로하 조정석
    💬 title,nameはきれいで値だけの洗顔料ですが、rank値だけがきれいではありません...ランキングだけを計算する過程でたくさんやりました...😭😭
    💬 解説動画を見て「文字列カット」でいいと言ったらGoogle!text[:]を使って文字列を切り取ることができるそうです.


    <出所>https://wikidocs.net/2838
    ▶▼▼完了コード
    for music in musics:
        title = music.select_one('td.info > a.title.ellipsis').text.strip()
        rank = music.select_one('td.number').text[0:2].strip()
        name = music.select_one('td.info > a.artist.ellipsis').text
        print(rank, title, name)
    
    
    > 결과값
    1 아로하 조정석
    2 시작 가호 (Gaho)
    3 처음처럼 엠씨더맥스 (M.C the MAX)
    4 이제 나만 믿어요 임영웅
    5 아무노래 지코 (ZICO)
    6 흔들리는 꽃들 속에서 네 샴푸향이 느껴진거야 장범준
    7 뭔가 잘못됐어 권진아
    8 WANNABE ITZY (있지)
    9 돌덩이 하현우 (국카스텐)
    10 어떻게 지내 (Prod. by VAN.C) 오반 (OVAN)
    

    ✔¥3週間後


    コーディングを始める前に、一番勉強したい言語はPythonです.なぜかと聞くと明確な理由がない.印刷物を使いたいだけ...?ははは🙄 このようにPythonを直接操作すると、以前習ったJavaScriptに似ているように見え、他の部分も混同されますが、確かに面白い!その中でスクロールする過程が一番面白いです.私が欲しい味がする😆
    今はまだ疎遠で、基礎レベルの内容しか触れていませんが、Pythonをさらに勉強する考えがあります.