未経験40代おっさん頑張っています
皆さんお久しぶりです。未経験おっさん頑張っています( ´∀` )
さて早いものでもう入校してから三週間です
そんな今週の学習内容は!!
python
待っていましたpython
好きで好きでたまらないpython
さてまずは簡単にpythonのメリットとデメリットを
メリット
- 分かり易い
- 汎用性がある
- 豊富なライブラリー
デメリット
- 処理速度が遅い
- 定数がない
ですかね??
定数っていうのは「変数を宣言した場所以外では中身を変えれないもの」って考え方が分かり易い
ですかね??
処理速度も遅いです。ま~あくまでjavaとかと比べてですが
今週学習したこと
ウェブスクレイピング(クローリング)
簡単にいうとwebサイトからデータを抽出するって行為ですね。
私は独学の時に某流行り病の増加率と予防接種率を自分の
PCのエクセルなどに落としていましたね
余談ですがpythonからexcelを操作するライブラリーをopenpyxlといいます。
ここで少し注意です。このウェブスクレイピング(クローリング)
サイトによっては禁止にしている場所もあります。
なぜなら、このウェブスクレイピング(クローリング)と言う行為は
リアルで例えるなら自分の家の玄関を一秒間に100回以上開けたり閉めたり
する行為と同じ事を抽出先のサーバーにもしている場合もあるからです。
なのでサーバーにもの凄い負担かけているかもという認識をお忘れなく。
mongoDB
mongoDBは「NOSQL」型のデータベースといいますか
「非リレーショナル」型のデータベースと言いますかー??
うん、手っ取りばやく言うと「データも形を特に指定しないで放り込める倉庫」
ってイメージが一番分かり易いですね( ´∀` )
またまた余談ですが。
リレーショナルデータベースとは特定の値をキーにし色々なテーブルから情報を繋げる事が出来る
データベースですかね?。
一番分かり易い例えがお客様番号をキーにして「名前」や「住所」
を様々なテーブルから情報を繋げるですかね。
今回の課題のコード
最後に課題のコードを貼って終わりにします。
と言っても最後の方はカンニングしたのですがwwww
どうしてもNoneの処理が分からなくて💦
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'}
data = requests.get('https://www.billboard-japan.com/charts/detail?a=hot100', headers=headers)
soup = BeautifulSoup(data.text, 'html.parser')
songs = soup.select('#content2 > div > div.leftBox > table > tbody > tr')
for song in songs
#ここで変数「rank」にまずはデータを格納
rank = song.select_one('td > span')
#条件分岐を使い「rank」の中身が「None」でなければそれぞれの変数にデータを格納し出力
if rank is not None:
rank = rank.text
title = song.select_one('p.musuc_title').text.strip()
artist = song.select_one('p.artist_name').text.strip()
print(rank, title, artist)