Start_python’s diary

ふたり暮らし

アラフィフ夫婦のフリーランスプラン

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