2019 ソフトウェア設計及び演習用の班Wiki

19::gr05::岡本哲

2019/4/19 第2回

簡易企画書の作成

  • 天気予報
  • ニュース(の見出し)

→Webスクレイピング

2019/4/26 第3回

  • 簡易企画書の作成
  • モノと操作の洗い出し

2019/5/10 第4回

  • Webスクレイピングのテスト
  • ライブラリ(Nokogiri)の仮インストール
  • 岩手大学ホームページの"重要なお知らせ"を取得することができた terminal.png

2019/5/17 第5回

  • Nokogiriのテスト
  • WebスクレイピングにはNokogiri(Ruby)かRequests(Python)のどちらかを使う→HTMLで実行することを考えながら決定する(遅くとも第7回終了時点まで)

2019/5/24 第6回

スクレイピングモジュール

スクレイピングにより得られた情報をcsvファイルに保存する

  • HTMLの要素を辿って指定する。
  • ただし、必要な情報が複数ある場合(li[1],li[2], ...)、スクレイピングモジュール側で指定するかcsvファイルでデータを整形する必要あり。
  • ブラウザでソースコードを表示し、解析していく。

2019/5/31

  • Pythonライブラリを使用してWebスクレイピングを行う

2019/6/7

スクレイピングまとめ

PythonライブラリのRequestsおよびBeautifulSoupを利用してスクレイピングを実行

プログラム概要

 HTMLのソースを確認して、必要な情報を格納している文字列を取得する。BeautifulSoupを使うことでHTMLのタグたどることが可能。

 例 : <変数> = soup.find_all('<HTMLのタグ>', class_='<クラス名>')

 得られた結果をCSVファイルなどに保存する。

2019/6/14

中間発表

2019/6/21

  • ログインが必要なサイトのスクレイピング

   アイアシスタントのトップページに表示されている情報(学務に関する新着情報、その他の新着情報など)の取得

   →「アイアシスタントのログイン画面からお入りください」と返されたがURLの指定を変更すると、

    「このページを表示するには、フレームをサポートしているブラウザが必要です」と返された。

  • ログイン機能

2019/6/21

機能追加に向けた調査

  • Django

   最終的な統合を行う.また,スクレイピングのプログラムを実行できそうなのでアプリの起動だけで必要な操作が完了できそう.

2019/6/21

機能追加に向けた調査

  • ログインが必要なサイトのスクレイピング

   6/14に引き続き,ログインが必要なサイトのスクレイピングを試みたが,うまくいかなかった.

  • Django

   Djangoを導入してアプリの最終的な統合を行うことに決めた.

2019/6/28

Djangoのテスト

  • Django公式のチュートリアルなどを利用してDjangoのテストを行った.

2019/7/5

Djangoのテスト

  • プロトタイプのメイン画面を表示させることができた.
  • Javascriptもきちんと動作していたので統合して利用することができそう.

2019/7/12

Djangoでの統合

  • データベースを利用してスクレイピングの結果を表示させたいが,思ったとおりに動作しない.
  • データベース(SQLite3)の操作,データベースの読み込み部分のテストが必要.

2019/7/19

Djangoでの統合

  • データベースにスクレイピングの結果を書き込めるようになり,ブラウザ上で結果が見られるようになった.

Django

HTML/CSS、JavaScript、Pythonのプログラムを1つにまとめたい
→Djangoで統合

Djangoとは

「Web 開発タスクを迅速かつ簡単化する」(Django公式ページより)
「Pythonで実装されたWebアプリケーションフレームワーク」「複雑なデータベース主体のWebサイトの構築を簡単にする」(Wikipediaより)
→Webアプリを制作するために必要な作業が簡単にまとめられている

プロジェクト内にアプリとして機能を作っていく.

DjangoによるWebアプリの構造

(プロジェクト)

|- (アプリ)

|- (アプリ)

|- ︙

|- (アプリ)

|- (データベース)

|- manage.py

ニュースアプリ

1.スクレイピングを行うスクリプトを実行する.

  →ニュースの日付,タイトルをまとめたCSVファイルが作成される.

2.CSVファイルからデータベースを作成するPythonスクリプトを実行する.

  →実行することでデータベースが更新され,新しいニュースを表示できる.

3.ブラウザ上に表示される.

天気アプリ

1.スクレイピングを行うスクリプトを実行する.

  →天気予報の地域,日付,天気予報,最高気温をまとめたCSVファイルが作成される.

2.CSVファイルからデータベースを作成するPythonスクリプトを実行する.

  →実行することでデータベースが更新され,新しい天気予報を表示できる.

3.ブラウザ上に表示される.

メイン画面アプリ

アプリにより集めた情報も統合して表示を行う画面.


最終更新日:2019/08/01 15:40:02