Webページのデータを取得する (python スクレイピング)
12日目 python スクレイピング
今回はこちらのサイトを参考にさせていただきました
とりあえずコピペして動作確認したけど、まったく意味がわかりません。
それでは解読していきます。
import urllib.request as request
from bs4 import BeautifulSoup
def get_stock_price(url):response = request.urlopen(url)
bs = BeautifulSoup(response, 'html.parser')
stoksPrice = bs.select('.stoksPrice')[1].text
return stoksPrice
url = 'https://stocks.finance.yahoo.co.jp/stocks/detail/?code=998407.O'result = get_stock_price(url)
print(f'日経平均株価は{result}円です。')
url2 = 'https://stocks.finance.yahoo.co.jp/stocks/detail/?code=8411.T'result = get_stock_price(url2)
print(f'みずほ銀行の株価は`{result}円です。')
変数の抜き出し
url
url2
result
get_stock_price
response
bs
stoksPrice
これらはただの変数なので無視でオッケー
わからない関数
request.urlopen
URLを開くための関数とクラスを定義する
BeautifulSoup
レスポンスのHTMLからBeautifulSoupオブジェクトを作る
.select
指定したclassを読み込み
(下のサイトを見てみたら、selectよりfind_allを使ったほうがわかりやすかったです)
[1].text
2つ目の文字列を抽出する([0]のときが1つ目になる)
print(f
format()と同じ
変数名をわかりやすい文字に変えました
def、returnは使わなくしました
import urllib.request as request
from bs4 import BeautifulSoup
a = 'https://stocks.finance.yahoo.co.jp/stocks/detail/?code=998407.O'x = request.urlopen(a)
y = BeautifulSoup(x, 'html.parser')
z = y.find_all(class = “'stoksPrice”)[1].text
print(f'日経平均株価は{z}円です。')
かなりすっきりしたと思います。
文責:Reyl
保存ファイル:
lesson13.py
lesson14.py