[Sparta]Web開発#3週間
14042 ワード
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をさらに勉強する考えがあります.
Reference
この問題について([Sparta]Web開発#3週間), 我々は、より多くの情報をここで見つけました https://velog.io/@jollyn/sparta-웹개발-3주차テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol