3週目のプログラミング<python>
今週は期待のpythonを学ぶようになった。
pythonの基本ベース(リスト、ディクショナリー)
a = 2
b = 3
print(a + b)
a = ['りんご', 'あめ', 'みかん']
print(a[1])
a = {'name': 'ボミ', 'age': 24}
print(a['name'])
初めて知った使い方(まだ勉強が必要。)
def hey():
print('hey!')
hey()
def sum(a, b, c):
return a + b + c
result = sum(1, 2, 3)
print(result)
defは関数を使うためには指定することで、出力と入力が必要である。
繰り返し文と条件文
age = 25
if age > 20:
print("成人")
else:
print("未成年")
ages = [5, 10, 13, 23, 25, 9]
for a in ages:
if a > 20:
print("成年")
else:
print("未成年")
他の言語より使いやすいという長所がある。
今週PyCharmを利用したmongodbを学んだ。
会員登録後、PyCharmの中でmongodbをインストールをする。
from pymongo import MongoClient
client = MongoClient('mongodb+srv://sparta:test@cluster0.v7tnfvp.mongodb.net/Cluster0?retryWrites=true&w=majority')
db = client.dbsparta
上のようにimportして使える。
doc = {'name': '花子','age' : 30}
db.users.insert_one(doc)
doc = {'name': '伸夫','age' : 20}
db.users.insert_one(doc)
このようにまともに入力したら、mongodbには出力することができる。
mongodbの使い方及び関数
# 保存 - 例
doc = {'name':'太郎','age':21}
db.users.insert_one(doc)
# 一つ探す - 例
user = db.users.find_one({'name':'太郎'})
# 複数検索 - 例 (_id値を除いて出力)
all_users = list(db.users.find({},{'_id':False}))
# 変更 - 例
db.users.update_one({'name':'太郎'},{'$set':{'age':19}})
# 消去 - 例
db.users.delete_one({'name':'太郎'})
requests = http通信必要なプログラミングを作成する時に一番多く使われるライブラリ。
requestsはPyCharmでインストール後、importした後に下のように使う。
import requests # requests ライブラリのインストールが必要
r = requests.get('http://spartacodingclub.shop/en/global_air/osaka')
rjson = r.json()
forecasts = rjson['data']['forecast']
for forecasts in forecasts:
date = forecasts['day']
ave = forecasts['avg']
print(date,ave)
方式には
GET 方式: requests.get()
POST 方式: requests.post()
PUT 方式: requests.put()
DELETE 方式: requests.delete()
がある。
出力したいデータを持って来て、出力することである。
bs4 = テキストで欲しいhtmlタグを出力する時使う事。
import requests
from bs4 import BeautifulSoup
bs4もまた、PyCharmからインストールしてimport後、使える。
URL = "https://eiga.com/ranking/"
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(URL, headers=headers)
soup = BeautifulSoup(data.text, 'html.parser')
このコードは理解しといた方がいい、出力欲しいURLを持って来て適用する。
movies = soup.select('#document_16l5w5x > main > div > div > section:nth-child(4) > table > tbody > tr')
出力したいhtmlタグを持ってくる。
for movie in movies:
rank = movie.select_one('span').text
title = movie.select_one('h2 > a').text##뒤에 .text라고 지정해도 ok
date = movie.select_one('.time').text
txt = movie.find('div',{'class':'txt-box'}).find('p').next_sibling.next_sibling.text
print(rank, title, date, txt)
繰り返し文を使って欲しいタグだけを持って来て出力する。