Soumettre la recherche
Mettre en ligne
東京電機大学 ポータルサイトUNIPAからの情報抽出と再利用
•
Télécharger en tant que PPTX, PDF
•
2 j'aime
•
15,994 vues
Koki Hashimoto
Suivre
スマートフォン勉強会@関東#20での発表資料です。
Lire moins
Lire la suite
Signaler
Partager
Signaler
Partager
1 sur 35
Télécharger maintenant
Recommandé
Quarkus入門
Quarkus入門
Norito Agetsuma
Ne visi kabeļi ir vienādi: jaunais instalācijas kabeļu standarts Latvijā un C...
Ne visi kabeļi ir vienādi: jaunais instalācijas kabeļu standarts Latvijā un C...
Elektrumlv
PGCon 2023 参加報告(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
PGCon 2023 参加報告(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
PGroonga 2 - PostgreSQLでの全文検索の決定版
PGroonga 2 - PostgreSQLでの全文検索の決定版
Kouhei Sutou
Java によるクラウドネイティブ の実現に向けて
Java によるクラウドネイティブ の実現に向けて
Shigeru Tatsuta
Helidon 概要
Helidon 概要
オラクルエンジニア通信
MariaDBとMroongaで作る全言語対応超高速全文検索システム
MariaDBとMroongaで作る全言語対応超高速全文検索システム
Kouhei Sutou
はじめてのOracle Cloud Infrastructure(Oracle Cloudウェビナーシリーズ: 2021年2月3日)
はじめてのOracle Cloud Infrastructure(Oracle Cloudウェビナーシリーズ: 2021年2月3日)
オラクルエンジニア通信
Recommandé
Quarkus入門
Quarkus入門
Norito Agetsuma
Ne visi kabeļi ir vienādi: jaunais instalācijas kabeļu standarts Latvijā un C...
Ne visi kabeļi ir vienādi: jaunais instalācijas kabeļu standarts Latvijā un C...
Elektrumlv
PGCon 2023 参加報告(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
PGCon 2023 参加報告(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
PGroonga 2 - PostgreSQLでの全文検索の決定版
PGroonga 2 - PostgreSQLでの全文検索の決定版
Kouhei Sutou
Java によるクラウドネイティブ の実現に向けて
Java によるクラウドネイティブ の実現に向けて
Shigeru Tatsuta
Helidon 概要
Helidon 概要
オラクルエンジニア通信
MariaDBとMroongaで作る全言語対応超高速全文検索システム
MariaDBとMroongaで作る全言語対応超高速全文検索システム
Kouhei Sutou
はじめてのOracle Cloud Infrastructure(Oracle Cloudウェビナーシリーズ: 2021年2月3日)
はじめてのOracle Cloud Infrastructure(Oracle Cloudウェビナーシリーズ: 2021年2月3日)
オラクルエンジニア通信
複数サービスを使う業務の自動化にはRPA×Node-RED構成がおすすめ/Node-RED Desktop紹介
複数サービスを使う業務の自動化にはRPA×Node-RED構成がおすすめ/Node-RED Desktop紹介
Kazuki Saito
EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤と
Toru Takahashi
サイバーエージェント様 発表「OpenStackのNWと物理の話」
サイバーエージェント様 発表「OpenStackのNWと物理の話」
VirtualTech Japan Inc.
Jakarta EE + MicroProfile との付き合い方
Jakarta EE + MicroProfile との付き合い方
Hirofumi Iwasaki
日本語:Mongo dbに於けるシャーディングについて
日本語:Mongo dbに於けるシャーディングについて
ippei_suzuki
たぶん45分くらいでわかる、オープンソースの世界
たぶん45分くらいでわかる、オープンソースの世界
Yutaka Kachi
ML2/OVN アーキテクチャ概観
ML2/OVN アーキテクチャ概観
Yamato Tanaka
PostgreSQL 14 モニタリング新機能紹介(PostgreSQL カンファレンス #24、2021/06/08)
PostgreSQL 14 モニタリング新機能紹介(PostgreSQL カンファレンス #24、2021/06/08)
NTT DATA Technology & Innovation
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
NTT DATA Technology & Innovation
Jtf13 ossジョブ管理システムによる運用自動化事例
Jtf13 ossジョブ管理システムによる運用自動化事例
OSSラボ株式会社
OSC2012 Tokyo Spring, USP lab. presentation
OSC2012 Tokyo Spring, USP lab. presentation
Ryuichi Ueda
実践・最強最速のアルゴリズム勉強会 第四回講義資料(ワークスアプリケーションズ & AtCoder)
実践・最強最速のアルゴリズム勉強会 第四回講義資料(ワークスアプリケーションズ & AtCoder)
AtCoder Inc.
POStudy Day 2012 in Okinawa - ユーザーストーリーマッピング
POStudy Day 2012 in Okinawa - ユーザーストーリーマッピング
満徳 関
xDev2010 早い安い新しい「Fast IT」を使いこなせ! クラウドを楽しめるエンジニアの条件
xDev2010 早い安い新しい「Fast IT」を使いこなせ! クラウドを楽しめるエンジニアの条件
Yusuke Suzuki
Pythonで検索エンジン2
Pythonで検索エンジン2
Yasukazu Kawasaki
POStudy Conference 2012 - ユーザーストーリーマッピング
POStudy Conference 2012 - ユーザーストーリーマッピング
満徳 関
国際的な相互運用とオープン技術 - 日時と文字 -
国際的な相互運用とオープン技術 - 日時と文字 -
yamahige
第2回 -Play部屋- Play 2.0はじめて&もくもく会
第2回 -Play部屋- Play 2.0はじめて&もくもく会
Kazuhiro Hara
気象庁XMLのSPARQL APIを利用してデータを俯瞰しよう -SPARQLとRによる可視化-
気象庁XMLのSPARQL APIを利用してデータを俯瞰しよう -SPARQLとRによる可視化-
Yasuyuki Sugai
20121017_アプリ制作勉強会@GMO Yours
20121017_アプリ制作勉強会@GMO Yours
Yozo SATO
Introduction to JShell: the Java REPL Tool #jjug_ccc #ccc_ab4
Introduction to JShell: the Java REPL Tool #jjug_ccc #ccc_ab4
bitter_fox
java-java-bpstudy-connpass
java-java-bpstudy-connpass
Haruo Sato
Contenu connexe
Tendances
複数サービスを使う業務の自動化にはRPA×Node-RED構成がおすすめ/Node-RED Desktop紹介
複数サービスを使う業務の自動化にはRPA×Node-RED構成がおすすめ/Node-RED Desktop紹介
Kazuki Saito
EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤と
Toru Takahashi
サイバーエージェント様 発表「OpenStackのNWと物理の話」
サイバーエージェント様 発表「OpenStackのNWと物理の話」
VirtualTech Japan Inc.
Jakarta EE + MicroProfile との付き合い方
Jakarta EE + MicroProfile との付き合い方
Hirofumi Iwasaki
日本語:Mongo dbに於けるシャーディングについて
日本語:Mongo dbに於けるシャーディングについて
ippei_suzuki
たぶん45分くらいでわかる、オープンソースの世界
たぶん45分くらいでわかる、オープンソースの世界
Yutaka Kachi
ML2/OVN アーキテクチャ概観
ML2/OVN アーキテクチャ概観
Yamato Tanaka
PostgreSQL 14 モニタリング新機能紹介(PostgreSQL カンファレンス #24、2021/06/08)
PostgreSQL 14 モニタリング新機能紹介(PostgreSQL カンファレンス #24、2021/06/08)
NTT DATA Technology & Innovation
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
NTT DATA Technology & Innovation
Tendances
(9)
複数サービスを使う業務の自動化にはRPA×Node-RED構成がおすすめ/Node-RED Desktop紹介
複数サービスを使う業務の自動化にはRPA×Node-RED構成がおすすめ/Node-RED Desktop紹介
EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤と
サイバーエージェント様 発表「OpenStackのNWと物理の話」
サイバーエージェント様 発表「OpenStackのNWと物理の話」
Jakarta EE + MicroProfile との付き合い方
Jakarta EE + MicroProfile との付き合い方
日本語:Mongo dbに於けるシャーディングについて
日本語:Mongo dbに於けるシャーディングについて
たぶん45分くらいでわかる、オープンソースの世界
たぶん45分くらいでわかる、オープンソースの世界
ML2/OVN アーキテクチャ概観
ML2/OVN アーキテクチャ概観
PostgreSQL 14 モニタリング新機能紹介(PostgreSQL カンファレンス #24、2021/06/08)
PostgreSQL 14 モニタリング新機能紹介(PostgreSQL カンファレンス #24、2021/06/08)
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
Similaire à 東京電機大学 ポータルサイトUNIPAからの情報抽出と再利用
Jtf13 ossジョブ管理システムによる運用自動化事例
Jtf13 ossジョブ管理システムによる運用自動化事例
OSSラボ株式会社
OSC2012 Tokyo Spring, USP lab. presentation
OSC2012 Tokyo Spring, USP lab. presentation
Ryuichi Ueda
実践・最強最速のアルゴリズム勉強会 第四回講義資料(ワークスアプリケーションズ & AtCoder)
実践・最強最速のアルゴリズム勉強会 第四回講義資料(ワークスアプリケーションズ & AtCoder)
AtCoder Inc.
POStudy Day 2012 in Okinawa - ユーザーストーリーマッピング
POStudy Day 2012 in Okinawa - ユーザーストーリーマッピング
満徳 関
xDev2010 早い安い新しい「Fast IT」を使いこなせ! クラウドを楽しめるエンジニアの条件
xDev2010 早い安い新しい「Fast IT」を使いこなせ! クラウドを楽しめるエンジニアの条件
Yusuke Suzuki
Pythonで検索エンジン2
Pythonで検索エンジン2
Yasukazu Kawasaki
POStudy Conference 2012 - ユーザーストーリーマッピング
POStudy Conference 2012 - ユーザーストーリーマッピング
満徳 関
国際的な相互運用とオープン技術 - 日時と文字 -
国際的な相互運用とオープン技術 - 日時と文字 -
yamahige
第2回 -Play部屋- Play 2.0はじめて&もくもく会
第2回 -Play部屋- Play 2.0はじめて&もくもく会
Kazuhiro Hara
気象庁XMLのSPARQL APIを利用してデータを俯瞰しよう -SPARQLとRによる可視化-
気象庁XMLのSPARQL APIを利用してデータを俯瞰しよう -SPARQLとRによる可視化-
Yasuyuki Sugai
20121017_アプリ制作勉強会@GMO Yours
20121017_アプリ制作勉強会@GMO Yours
Yozo SATO
Introduction to JShell: the Java REPL Tool #jjug_ccc #ccc_ab4
Introduction to JShell: the Java REPL Tool #jjug_ccc #ccc_ab4
bitter_fox
java-java-bpstudy-connpass
java-java-bpstudy-connpass
Haruo Sato
Klabの梅雨対策
Klabの梅雨対策
Hideyuki TAKEI
国際的な相互運用とオープン技術 - 日時と文字 -
国際的な相互運用とオープン技術 - 日時と文字 -
yamahige
Yokozuna 日本語検索機能を評価しました
Yokozuna 日本語検索機能を評価しました
Takashi Sogabe
SQLおじさん(自称)がBigQueryのStandard SQLを使ってみた
SQLおじさん(自称)がBigQueryのStandard SQLを使ってみた
Kumano Ryo
チケット管理システム大決戦第二弾
チケット管理システム大決戦第二弾
Ryutaro YOSHIBA
Sql database のご紹介
Sql database のご紹介
Oda Shinsuke
実践的IT勉強会参加術
実践的IT勉強会参加術
Hiromu Shioya
Similaire à 東京電機大学 ポータルサイトUNIPAからの情報抽出と再利用
(20)
Jtf13 ossジョブ管理システムによる運用自動化事例
Jtf13 ossジョブ管理システムによる運用自動化事例
OSC2012 Tokyo Spring, USP lab. presentation
OSC2012 Tokyo Spring, USP lab. presentation
実践・最強最速のアルゴリズム勉強会 第四回講義資料(ワークスアプリケーションズ & AtCoder)
実践・最強最速のアルゴリズム勉強会 第四回講義資料(ワークスアプリケーションズ & AtCoder)
POStudy Day 2012 in Okinawa - ユーザーストーリーマッピング
POStudy Day 2012 in Okinawa - ユーザーストーリーマッピング
xDev2010 早い安い新しい「Fast IT」を使いこなせ! クラウドを楽しめるエンジニアの条件
xDev2010 早い安い新しい「Fast IT」を使いこなせ! クラウドを楽しめるエンジニアの条件
Pythonで検索エンジン2
Pythonで検索エンジン2
POStudy Conference 2012 - ユーザーストーリーマッピング
POStudy Conference 2012 - ユーザーストーリーマッピング
国際的な相互運用とオープン技術 - 日時と文字 -
国際的な相互運用とオープン技術 - 日時と文字 -
第2回 -Play部屋- Play 2.0はじめて&もくもく会
第2回 -Play部屋- Play 2.0はじめて&もくもく会
気象庁XMLのSPARQL APIを利用してデータを俯瞰しよう -SPARQLとRによる可視化-
気象庁XMLのSPARQL APIを利用してデータを俯瞰しよう -SPARQLとRによる可視化-
20121017_アプリ制作勉強会@GMO Yours
20121017_アプリ制作勉強会@GMO Yours
Introduction to JShell: the Java REPL Tool #jjug_ccc #ccc_ab4
Introduction to JShell: the Java REPL Tool #jjug_ccc #ccc_ab4
java-java-bpstudy-connpass
java-java-bpstudy-connpass
Klabの梅雨対策
Klabの梅雨対策
国際的な相互運用とオープン技術 - 日時と文字 -
国際的な相互運用とオープン技術 - 日時と文字 -
Yokozuna 日本語検索機能を評価しました
Yokozuna 日本語検索機能を評価しました
SQLおじさん(自称)がBigQueryのStandard SQLを使ってみた
SQLおじさん(自称)がBigQueryのStandard SQLを使ってみた
チケット管理システム大決戦第二弾
チケット管理システム大決戦第二弾
Sql database のご紹介
Sql database のご紹介
実践的IT勉強会参加術
実践的IT勉強会参加術
東京電機大学 ポータルサイトUNIPAからの情報抽出と再利用
1.
東京電機大学 ポータルサイト UNIPAからの情報抽出と再利用
@nullpoo 2012/8/25
2.
だれ? • 名前:Koki Hashimoto •
Twitter :@nullpoo – ぬるぷー • 東京電機大学に通っています • 来年から社畜です • すまべんスタッフになってました
3.
はなすこと • UNIPAとは何か、どこがどうダメなのか –
欠陥仕様、事務部の運用 • 無知の状態から形になるまでの道のり – 認証や各ページへの遷移 – スクレイピングでゴリゴリと削り出す – フリーダム書式に正規表現の力 – etc • 成果物と活用方法
4.
UNIPAとは? •
学生向けポータルサイト • 製品名はUNIVERSAL PASSPORTらしい • http://www.jast-gakuen.com/ • ググると被害者リストが出てくる
5.
いきさつ • (元)神田キャンパスにUNIPA試験導入 –
ものすごく使い勝手が悪い • 神田キャンパス正式導入、一本化 – 使い勝手は変わらず、不具合多数 • 他キャンパスにも導入 – 悲しみの連鎖 • XMLな講義の課題としてUNIPAを標的に
6.
UNIPAのだめなところ
7.
ログイン • 新しいウィンドウ開くな • メンテナンスしすぎ •
Operaだとabout:blankに飛ばされるぞ
8.
連絡事項 • 基本的に通知は無いぞ –
休講補講情報に気づかず出席 – 事務部が機能を無効化 • 書式が全く統一されていないぞ – 各詳細ページの「本文」項目のフリーダム感 • やっぱり新しいウィンドウで開く
9.
作るか・・・
10.
UNIPAクローラー 制作過程
11.
指針 • APIとして公開する –
自分でも使いやすく、他の人も使える • とりあえず、休講補講情報を扱う – 事務部からのお知らせなども同じ構造なので 応用は簡単(のはず) • 色々な技術を取り入れる – 正規表現やデータベースなど
12.
開発言語 • 最初はC#で作っていた –
C#くらいしかまともに使えなかったし – Visual Studio使いたかったし • けどPythonに – Linuxで動かしたかった – 本持ってた • Javaの講義なんだけどね
13.
やるべきこと •
認証とページ遷移 • 必要な情報を抽出 • データの整形 • データベースへの格納 • リクエストに対しての出力
14.
認証・ページ遷移 ソース見て解析したり通信内容解析もいい だけど、もう尐し楽に解析したい FirefoxプラグインのTamper
Dataとかおすすめ
15.
Tamper Dataとは • Webアクセスをモニタできるアドオン •
HTTPパラメータの中身を見て、いじれる • Webサイトのテストにも使えるらしい
16.
17.
ながれ • Cookieを引き回し • 各ページにセッションIDが埋めこまれて
いるので、抽出 • POSTパラメータに追加して、サーバに シュート – 入れなくていいパラメータもある • 基本的にはこの繰り返し
18.
Cookie • Cookieを使いまわす –
.NETならCookieContainerで – Pythonならこんな感じ cj = cookielib.CookieJar() //このcjを使いまわす opener = urllib2.build_opener() opener.add_handler(urllib2.HTTPCookieProcessor(cj)) res = opener.open(req) result = res.read() – 普通ですね
19.
ゴリゴリと削りだし • スクレイピング –
.NETならSgmlReaderでLINQ!LINQ! – PythonはBeautifulSoupかMechanizeが有名 – 正規表現で抽出するのもいいかも • 今回はBeautifulSoupを採用 – 名前がかっこいいから
20.
コトコト煮込む • 結構簡単にいけます //まずは煮込む
soup = BeautifulSoup(srchtml) //inputタグのidがhogehogeな要素を取り出す q = soup.findAll('input', id=“hogehoge") //0番目の要素のvalueを取り出す session_id = q[0]['value'] • これでデータを削り出せる
21.
削りだしたデータ例 - 1 <span
id="form1:htmlMain" <span id="form1:htmlMain" class="output002"> class="output002"> 教室変更情報詳細<br><br> 補講の詳細は下記の通りです。<br><br> 日付:2012年05月07日 月曜日<br> 科目名留学生のための日本語Ⅲ<br> 時限:6限<br> 教員名佐藤 有紀先生<br> 科目:熱機関<br> 休講日<br> 教員:小林 佳弘<br> 補講日7/14(土)2限<br> 変更前教室:【千住】2号館2502教室 補講教室9401<br> <br> 備考<BR> 変更後教室:【千住】2号館2705教室 </span> <br> 備考:5/7(月)以降、前期期間中を通 しての変更となります。<BR> </span> . .: : : : : : : : :: :::: :: :: : :::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::: . . : : : :: : : :: : ::: :: : :::: :: ::: ::: :::::::::::::::::: :::::::::::::::::::: . . .... ..: : :: :: ::: :::::: :::::::::::: : ::::::::::::::::::: :::::::::::::::::::::::::: Λ_ Λ . . . .: : : ::: : :: ::::::::: :::::::::::::::::::::::::::::
22.
これを後述の正規表現で分ける
23.
削りだしたデータ例 - 2 •
休講補講情報の日付書式 – 2012年07月11日水曜日 – 7/12(木)4限 – 7月18日(水) – 7/26 – 5/19,6/2,6/23,6/30,7/14(いずれも土曜日) .,,..,,,,_ / ,' 3 `ヽーっ l ⊃ ⌒_つ `'ー---‐'''''"
24.
というわけで、整形 • 正規表現難しいけどがんばろう • 不必要な情報を削る方向で •
(事務部の気分で)情報は常に変化する – 将来的に出てくるであろう書式にも対応 – どうしても無理なら無視 • 下処理しておく – 半角・全角スペースの削除や、全角数字を半 角数字に変換
25.
正規表現の例 • 2012年07月07日(木曜日)や、7月7日など
を2012-07-07に整形 p1 = re.compile(u"^(d+年)?d+月d+日?:*") _date = p1.match(_date).group() _date = _date.replace(u'年','-').replace(u'月','-').replace(u' 日','') • ツッコミ歓迎
26.
データベースにシュート • データベースは全然わからないです • クローラーとAPIプログラムを分離 •
単にMySQL使いたかっただけ • ログ的に活用できるかも?
27.
APIをつくる • リクエストパラメータ例
日付指定:?fdate=20120808&tdate=20120831 キャンパス指定:?campus=[senju or hatoyama] • データベースから欲しい情報だけ拾う JSONやXMLで出力
28.
運用 • Cronで定期的にクローラーを実行 –
エラーで落ちても影響が尐ない – メモリも多尐節約 • まだ実装していません – (できない)
29.
できたの? • 完成という言葉は多分無い –
新たな書式や、データ構造と戦い続ける運命 – UNIPAが滅びるまで戦いは続く • そして問題点がいくつか – 夏休み中なので運用テストできていない – あと半年で卒業 – リニューアルされたら禿げる – 使って貰わなければ意味が無い
30.
成果物 - 1 •
UNIPA API – http://nullserver.jp/nullpo/sqlout.py – とりあえず公開しただけ – JSONでの全件出力しかまだできないです • UNIPA BOT – @TDU_UNIPA_BOT – データがないので稼働できていません
31.
成果物 - 2 •
iOS向けアプリ(TDU休講情報) – 酢酸先生が作ってくれました – そのうち公開されます(多分) – きっとAndroid版も出ます
32.
成果物 - 3 •
講義用Javaプログラム – Javaを絡めるために無理やり作成 – 講義名でTwitter検索するだけ 【千住・休講】07/11(水)6限企業と経営 ---------------------------------------------------------------- Wed Jul 11 12:35:39 JST 2012:JUNJUN593:@XxHKRxX 企業と会計、企業と経営、基礎 統計???かな?? Wed Jul 11 04:34:43 JST 2012:ForbesFortune48:三井住友フィナンシャルグルー プ: 概要: 他のグループ企業と経営統合をしたのでもないのに、既存の子会社との 間で持株会社を設立した背景には、三井住友銀行の財務状況の改善がある( わかし お銀行 との逆さ合併前)。 http://t.co/G64IpQFz Tue Jul 10 20:53:50 JST 2012:horipyon2:企業と経営もっとちゃんとレジュメ書い とけばよかったぁ( ; ; ) 会計に続きえりにお世話なるかも…笑 Tue Jul 10 16:35:56 JST 2012:taisukes07:今週やることが多すぎる!! 英語の PowerPoint、英語のエッセイ、600字、企業と経営のレポートetc ヤバいーー Tue Jul 10 10:38:53 JST 2012:taaakaaa1111:吹いたー! 企業と経営に紅野発見!! 単位もらったわ笑
33.
様々な活用方法 • 携帯向けサイトを作る –
ガラケーに救いの手を – スマートフォンでも見やすい • データ解析 – データが蓄積すればきっと何か見えてくる – 休講予報とかできるかもよ 何か作ってください
34.
さいごに •
精神的に強くなれました • 色々な人に助けてもらいました • 大学の事務部はクソ • 他の大学のUNIPAも気になる • UNIPA MVP募集
35.
俺達の戦いはここからだ! ぬるぷー先生の次回作にご期待下さい
おわり
Télécharger maintenant