27
36

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Python 3.6でWebスクレイピングしてみました

Last updated at Posted at 2018-04-27

Python3.6で「Beautiful Soup」と「Requests」の2つのライブラリを利用して
日本経済新聞」のHPから「日経平均株価」を取得してみました。

#環境
Windows10(64bit)
Internet Explorer11
Python 3.6.4
pip 10.0.1

#使用するライブラリ
Beautiful Soup
Requests

#ライブラリインストール

pip install BeautifulSoup4
pip install Requests

#インストールの確認

Package        Version
-------------- ---------
beautifulsoup4 4.6.0
requests       2.18.4

#取得したい対象の確認
日本経済新聞」のHPを開きます。

nikkei_top.png

トップページの上に「日経平均」を確認できます。
Internet Explorerで「日経平均」のところで右クリックし「要素の検査」をクリックします。
すると「開発者ツール」が立ち上がり、今回取得したい対象が
span要素でClass="m-miH01C_rate"となっていることが分かります。

heikinkabuka.png

#必要な処理の確認
①ライブラリのインポート
②requestsを利用してHTMLを取得
③取得したHTMLからBeautifulSoup4を利用してHTMLパースを取得
④取得したHTMLパースから「span」要素を取得する。
⑤「span」要素の中のclass「m-miH01C_rate」を取得する。

#コーディング

kabuka.py
#日経平均平均株価
nikkei_heikin = ""

#①インポートします。
import requests
from bs4 import BeautifulSoup

#②HTMLを取得します。
url = 'https://www.nikkei.com/'
html = requests.get(url)

#③HTMLパース用のオブジェクトを作成します。
soup = BeautifulSoup(html.text,"html.parser")

#④「span」要素全て抽出します。
span = soup.find_all("span")

#⑤「span」要素をループします。
for tag in span:
	try:
		#⑥「span」要素から「class」をpopしていきます。
		string_ = tag.get("class").pop(0)
		#⑦摘出したclassの文字列にm-miH01C_rateが設定されているかチェックします。
		if string_ in "m-miH01C_rate":
			#⑧tagの文字列(日経平均株価)を取得します。
			nikkei_heikin = tag.string
			#⑨ループ処理を中断します。
			break
	except:
		#⑥'「span」要素から「class」をpopできなかった場合何もしません。
		pass

#⓾取得した日経平均株価を出力します。
print(nikkei_heikin)

#実行

C:\>python kabuka.py
22,467.87

「日経平均株価」を取得することができました。

27
36
0

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
27
36

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?