LoginSignup
1
0

More than 1 year has passed since last update.

プログラミング入門コース 3週目

Posted at

1週間の振り返り

3週目の途中で講義動画などの差し替えがあったため1週間間が空いたので空いている時間で1週目~2週目までの復習に時間を充てることができたと思う。今回の3週目からより難易度がぐっと上がった感じがした。

1週間で学んだこと

  • Python
     プロジェクトごとに仮想環境を構築できる(ほかのプロジェクト上には影響がない)
     必要なライブラリーはパッケージを追加インストールし使用する(使用する際の宣言は必要)

実際の記載したコードの実行結果を確認する際にはprint()を使用

hello.py
test = 'テスト'

print(test)

リスト型とDictionary型はjavascriptと考え方は同じ

hello.py
#リスト型
a=['りんご','なし','かき']
print(a[0]) # りんご

#Dictionary型

a= {}
a= {'name':'太郎','age':24}

# aの値は? {'name': '太郎'、 'age': 24}
# a['name']の値は? '太郎'

関数の定義

hello.py
f(x) = 2*x+3
y = f(2)

# JavaScriptの場合
function f(x) {
	return 2*x+3
}

# Pythonの場合
def f(x):
	return 2*x+3

条件分岐と繰り返し

hello.py
#条件分岐はif/elseで構成する
age = 25

if age > 20:
	print("成人です")
else:
	print("未成年です")

#繰り返しはfor/inで指定
#Pythonで繰り返しはリストの要素を1つずつ取り出す際に使用

fruits = ['りんご','なし','かき','みかん']

for fruit in fruits:
	print(fruit)

  • ウェブスクレイピング(クローリング)
     スクレイビングとクローリングの違い
    • スクレイビング
       特定のデータ構造から不要なデータを除去し、重要な情報を抽出することを指す。
        Web上の情報をスクレイピングすることを、Webスクレイピングと呼ぶこともある。

    • クローリング
       Web上で様々なサイトを巡回し情報の保存や複製など様々なことを行うことを指す。情報を集める目的として使われる。

基本クローリング設定用

dbprac.py
import requests
from bs4 import BeautifulSoup

URL = "https://movies.yahoo.co.jp/"
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')

よく使う基本コード

dbprac.py
# 保存 - 例
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':'太郎'})

今週の課題提出

課題

billboard.py
import requests
from bs4 import BeautifulSoup

from pymongo import MongoClient

client = MongoClient('mongodb+srv://sparta:test@cluster0.pmuxf9z.mongodb.net/Cluster0?retryWrites=true&w=majority')
db = client.dbsparta

URL = "https://www.billboard-japan.com/charts/detail?a=hot100"

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')

musics = soup.select('#content2 > div > div.leftBox > table > tbody > tr')

for music in musics:
    rank = music.select_one('td > span')

    if rank is not None:
        rank = rank.text
        title = music.select_one('p.musuc_title').text.strip()
        artist = music.select_one('p.artist_name').text.strip()
        print(rank, title, artist)

来週の目標

3週目の復習を再度行い、5週目までに実際に作成したいWebサイトの企画書の記事を作成できるようにすることを目標に頑張っていきます。
1
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0