まずスクレイピングをやってみようと思います。スクレイピングとは「web上の情報を抽出する」ことです。株価のデータを取得するために必要なことですね。
##目標
はてなのサイトにアクセスして、タイトルの「はてな」を抽出する。
##開発環境
- Windows7 32bit
- Python 3.6.1
- Anaconda 4.4.0
- beautifulsoup4 4.6.0
##ソース
# -*- coding: utf-8 -*-
"""
Spyderエディタ
これは一時的なスクリプトファイルです
"""
# 使用するライブラリ urllib.request , bs4 をインポートする
import urllib.request
import bs4
# アクセスするURL
url = "http://www.hatena.ne.jp/"
# URL先のhtmlを格納する
html = urllib.request.urlopen(url)
# htmlをBeautifulSoupで扱う
soup = bs4.BeautifulSoup(html, "html.parser")
# タイトルを取得する → <title>はてな</title>
title_tag = soup.title
# 要素の文字列を取得する → はてな
title = title_tag.string
# タイトルを文字列を出力
print (title)
##urllib.requst
URLを開くために必要なライブラリです。これをインポートしましょう。詳細はこちら(urllib.requst)に書いてあります。
import urllib.request
##beautifulsoup4
これもAnacondaに入ってます。HTMLやXMLからデータを取得するのに必要なライブラリです。これをインポートしましょう。詳細はこちら(urllib.requst)に書いてあります。
import bs4
##ソースの説明
url = "http://www.hatena.ne.jp/"
「はてな」のURLです。ここにアクセスしたいサイトのURLを入れます。
html = urllib.request.urlopen(url)
指定されたURLを開き、そのHTMLを取得します。HTMLってどんなものかわかりにくいと思いますので、http://kondou.com/BS4/ を参照下さい。クイックスタートに書いてある html_doc が今回の html に該当します。
soup = bs4.BeautifulSoup(html, "html.parser")
先程のhtmlを細かくタグごとに分けてくれます。parserというのはhtmlを解析するということなので、タグごとに分けてくれるのかなと思います。
title_tag = soup.title
これは<title>タグを抜き出しています。今回の場合は
title_tag = <title>はてな</title>
となります。
title = title_tag.string
先程の「はてな」だけを抜き取ります。
##最後に
本日会社の合間に始めたのでまだまだ時間がかかりそうですが、地道にやっていきます。プログラム初心者なので間違っているところなどあればご指導頂けると幸いです。