3
8

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でスクレイピングをやってみる -システムトレードへの道-

Posted at

まずスクレイピングをやってみようと思います。スクレイピングとは「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

先程の「はてな」だけを抜き取ります。

##最後に
本日会社の合間に始めたのでまだまだ時間がかかりそうですが、地道にやっていきます。プログラム初心者なので間違っているところなどあればご指導頂けると幸いです。

3
8
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
3
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?