Summary #3 Python, Web-crawling, MongoDB
4733 ワード
1. Python
コンピュータ言語翻訳パッケージ(変換支援)
基本構文
既存のJavaScript構文よりも直感的
1)変数
let無効
console.出力はprint()でありlog()ではない
2)資料型
同様にletを無効にする
List、dictはJavaScript形式と同じです
3)関数
function 함수이름() {
실행문
}
console.log()
既存の出力方式からdef 함수이름():
실행문
4則演算として複数の関数値を使用する場合は、結果値を使用します.result = 함수이름() + 함수이름()
print(result)
出力先
4)条件文既存のJavaScript構文
if (조건) {
실행문
} else {
실행문
}
python構文if 조건:
print()
else:
print()
5)繰り返し文フォーム#フォーム#
無条件にリストとともに使用
例
fruits = ['사과','배','감','귤']
for fruit in fruits:
print(fruit)
既存のJavaScript構文for (let i = 0; i < length(범위); i++) {
실행문
}
python構文for 꺼내쓰고자하는 것 in 리스트:
print()
Pythonパッケージのインストール(外部ライブラリ)
ライブラリはpip(Python install package)を使用して仮想環境(venv)にインストールされます.
≪仮想環境|Virtual Environment|oem_src≫:実行環境を分離するプロジェクト固有のツール・ボックス
Mac:PyCharm-Python Interpreter,「+」ボタンを押してパッケージをインストール
1)要求パッケージ
デフォルト設定
import requests
r = requests.get('정보를 get하고자 하는 url')
rjson = r.json()
gus = rjson['list']
for gu in gus:
print()
2.スクロール(Web scraping)
最新情報のフィルタ処理
bs 4(美化グループ4)パッケージの追加インストールが必要です
デフォルト設定
import requests
from bs4 import BeautifulSoup
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'}
//headers 값은 만지지 않기!
data = requests.get('정보를 get 하고자 하는 url',headers=headers)
soup = BeautifulSoup(data.text, 'html.parser')
1)select(選択によるデータのロード)soup.select('태그명')
soup.select('.클래스명')
soup.select('#아이디명')
soup.select('상위태그명 > 하위태그명 > 하위태그명')
soup.select('태그명[속성="값"]')
//한개만 가져오고 싶은 경우
soup.select_one('위와 동일')
2)選択者の検索方法Webページを右クリック[チェック]
目的のラベルを右クリック
copy-copy selector
3. MongoDB
DB(データベース):データの積み重ね(非表示)
robo 3 T:データの蓄積を可視化するプログラム
なぜDBを使うのですか?
可用性を向上させるために、
データベースの2種類
1)SQL:定型化しにくい/変更しやすい/分析しやすい
2)NoSQL:非構造化/変更しやすい/SQLより分析しにくい
MongoDBはNoSQLに属します.
pymongoパッケージのインストール
mongodbを操作するためのライブラリ
デフォルト設定
from pymongo import MongoClient
client = MongoClient('localhost', 27017)
// mongoDB는 27017 포트 사용함
db = client.dbsparta
1)挿入(データベースにデータを挿入)//'users'라는 collection에 {'name':'이름','age':숫자}를 넣습니다.
db.users.insert_one({'name':'john','age':30})
2)find(データベースでデータを検索)//데이터 모두 보기
all_users = list(db.users.find({}))
//특정 조건(같은 나이로 설정됨)의 데이터 모두 보기
//'_id'값은 랜덤으로 지정됨으로 'false'처리하여 찾지 않음
same_ages = list(db.users.find({'age':숫자},{'_id':False}))
//하나만 찾고자 할때(find_one)
user = db.users.find_one({'name':'이름'})
3)update one/マルチ(データベースデータ変更)1つのDBを1つ変更して、すべての変更は多くの使用を使います
db.people.update_one({찾을조건},{ '$set': {어떻게바꿀지} })
//찾을조건과 어떻게바꿀지는 key:value 형태의 객체로 입력
4)delete(データベースデータ削除)1つのDBを1つ削除して、すべて削除してたくさん使います
少ない機能
db.people.delete_one({삭제할조건})
//삭제할조건은 key:value 형태의 객체로 작성
4.ジニー音楽の上位1~50曲をブラウズ
索引とスライシング
≪索引|Index|oem_src≫:索引番号を使用して特定の場所の文字を抽出します.
スライド:[start:stop:step]を使用して複数の文字を抽出する
startは、抽出する文字列の頭文字のインデックスです.
stopは抽出する文字列の最後の文字のindex+1であり、
Stepはインクリメンタルと省略でき、デフォルト値は1
例)
text = 'ABCD'
text[0:2:1]または[0:2]
最初の文字「A」のインデックス値は0/である.
前の「B」のインデックス値1+1=2/
増幅のデフォルト1
=A、B出力
rank = tr.select_one('td.number').text[0:2]
中出力テキストのみの場合1
(공백)
1상승
テキストを整理する必要があります.text[0:2]を適用すると、「1」の残りの部分だけが空になります.
strip関数(不要な内容を消去)
strip()を使用する場合、()が空の場合は空白をクリアします.
rank = tr.select_one('td.number').text[0:2].strip()
残りの空白部分をクリアし、rankを整理!Reference
この問題について(Summary #3 Python, Web-crawling, MongoDB), 我々は、より多くの情報をここで見つけました https://velog.io/@lovvepearl/Summary3テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol