スクレイピング(10月20日)
の編集
Top
/
スクレイピング(10月20日)
[
トップ
] [
編集
|
差分
|
履歴
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
-- 雛形とするページ --
島部/menu/template
[[専門ゼミ(蒲田)]] *目次 [#w9b976b5] #CONTENTS ***ここでできること [#i421f0d8] インターネットよりほしい情報を効率的に取り入れることができる. *スクレイピングのやり方[#ie08a2ef] **beautifulsoup4によるスクレイピング [#ie08a2ef] -[[デモデータの作成]] ~ ***beautifulsoup4の導入 [#ufcab7f3] ***beautifulsoup4の使い方 [#ufcab7f3] **seleniumによるスクレイピング [#ga1c2f7d] ***Seleniumの導入 [#c7df3d58] ***Seleniumの使い方 [#ze850b3a] **協調フィルタリング [#u6d50e13] ***協調フィルタリングとは [#i36c5908] 協調フィルタリングの定義は,「協調フィルタリングは与えられたデータから規則性を見つけ出し,利用者がまだ知らない情報を予測するものである」です.詳しくはこの論文読んでね. #ref(情報推薦のアルゴリズム.pdf,,情報推薦のアルゴリズム) ***教学データに対する協調フィルタリング [#h0f2d234] 滝沢の卒論では教学データに対して協調フィルタリングを行います. -[[pythonによるユーザーベース協調フィルタリングの実装]] ~ 詳しくはこちらにまとめてます. **シラバスからキーワード抽出 [#v6774ab0] シラバスから各授業における「キーワード」を抽出します.このキーワードをあらかじめ抽出しておくことで後の教材作成に役立てます. ***準備 [#j661bc61] pythonでhtml解析を行う際に便利なのがBeautifulSoupというライブラリです.コマンドプロンプトを開いて pip install beautifulsoup4 ***キーワード抽出 [#x6d80d4b] 富山県立大学のwebシラバスから授業ごとのキーワードを抜き出します.~ ~ ここで少しやっかいなのが,webシラバスは科目区分や配当学年から絞り込みを行ってもurlが変化しません.つまり,上のurlについてhtml解析を行っても何の情報も得られません.~ そこでかなり面倒なのですが一つ一つの科目のwebシラバスを「選択」から開いてやります.そうすると新しいウインドが出ると思いますがこのウインドについては授業ごとにurlが割り当てられているのでこのurlを使用します. ***url取得 [#r4175433] https://tpuwswebsv.pu-toyama.ac.jp/public/web/Syllabus/WebSyllabusKensaku/UI/WSL_SyllabusKensaku.aspx~ 富山県立大学のwebシラバスにアクセス→自分が取得したい科目の「選択」を押す→新しいウインドが出てくるのでurlをコピー ***サンプルコード [#c8a5e552] #ref(screiping.py,,サンプルコード)~ まずは必要なパッケージをインポート import requests from bs4 import BeautifulSoup import re import time import csv import pandas as pd webページのurlを指定してhtmlを解析します.html内で授業科目名とキーワードについてidが割り振られているのでidを指定してhtml内からそれぞれを抽出します.同じような処理が続いていますが,これは上記した理由でこうなっています.urlを科目ごとに変えることで科目ごとのキーワードが取得できます. # Webページを取得して解析する url = "https://tpuwswebsv.pu-toyama.ac.jp/public/web/Syllabus/WebSyllabusSansho/UI/WSL_SyllabusSansho.aspx? P1=1025535&P2=2021&P3=20210401" html = requests.get(url) soup = BeautifulSoup(html.content, "html.parser") #授業科目 koginame = soup.find(id = 'lblKogiName').text #キーワード keyword = re.split('[,_,_、]',soup.find(id ='lblHyokaHoho').text.strip().replace(' ','')) 最後に全てのキーワードをまとめてcsvファイルで出力します. keyword_all = [] keyword_all.append(keyword) keyword_all.append(keyword1) keyword_all.append(keyword2) keyword_all.append(keyword3) keyword_all.append(keyword4) #print(keyword_all) koginame_Df = pd.DataFrame(keyword_all,index=[f'{koginame}',f'{koginame1}',f'{koginame2}',f'{koginame3}',f'{koginame4}'],columns=None) print(koginame_Df) koginame_Df.to_csv('C:/Users/takky/富山県立大学/研究室/卒業研究/RecommendSystem/New Demodata/koginame.csv',columns=None,encoding='shift-jis') #ref(ss2.png,,50%) このようなcsvファイルが出力されればOKです.csvファイルの出力先はお好きな場所に変更してください.~ 次はこのcsvファイルを使ってwebページとyoutubeからのスクレイピングを行います.
タイムスタンプを変更しない
[[専門ゼミ(蒲田)]] *目次 [#w9b976b5] #CONTENTS ***ここでできること [#i421f0d8] インターネットよりほしい情報を効率的に取り入れることができる. *スクレイピングのやり方[#ie08a2ef] **beautifulsoup4によるスクレイピング [#ie08a2ef] -[[デモデータの作成]] ~ ***beautifulsoup4の導入 [#ufcab7f3] ***beautifulsoup4の使い方 [#ufcab7f3] **seleniumによるスクレイピング [#ga1c2f7d] ***Seleniumの導入 [#c7df3d58] ***Seleniumの使い方 [#ze850b3a] **協調フィルタリング [#u6d50e13] ***協調フィルタリングとは [#i36c5908] 協調フィルタリングの定義は,「協調フィルタリングは与えられたデータから規則性を見つけ出し,利用者がまだ知らない情報を予測するものである」です.詳しくはこの論文読んでね. #ref(情報推薦のアルゴリズム.pdf,,情報推薦のアルゴリズム) ***教学データに対する協調フィルタリング [#h0f2d234] 滝沢の卒論では教学データに対して協調フィルタリングを行います. -[[pythonによるユーザーベース協調フィルタリングの実装]] ~ 詳しくはこちらにまとめてます. **シラバスからキーワード抽出 [#v6774ab0] シラバスから各授業における「キーワード」を抽出します.このキーワードをあらかじめ抽出しておくことで後の教材作成に役立てます. ***準備 [#j661bc61] pythonでhtml解析を行う際に便利なのがBeautifulSoupというライブラリです.コマンドプロンプトを開いて pip install beautifulsoup4 ***キーワード抽出 [#x6d80d4b] 富山県立大学のwebシラバスから授業ごとのキーワードを抜き出します.~ ~ ここで少しやっかいなのが,webシラバスは科目区分や配当学年から絞り込みを行ってもurlが変化しません.つまり,上のurlについてhtml解析を行っても何の情報も得られません.~ そこでかなり面倒なのですが一つ一つの科目のwebシラバスを「選択」から開いてやります.そうすると新しいウインドが出ると思いますがこのウインドについては授業ごとにurlが割り当てられているのでこのurlを使用します. ***url取得 [#r4175433] https://tpuwswebsv.pu-toyama.ac.jp/public/web/Syllabus/WebSyllabusKensaku/UI/WSL_SyllabusKensaku.aspx~ 富山県立大学のwebシラバスにアクセス→自分が取得したい科目の「選択」を押す→新しいウインドが出てくるのでurlをコピー ***サンプルコード [#c8a5e552] #ref(screiping.py,,サンプルコード)~ まずは必要なパッケージをインポート import requests from bs4 import BeautifulSoup import re import time import csv import pandas as pd webページのurlを指定してhtmlを解析します.html内で授業科目名とキーワードについてidが割り振られているのでidを指定してhtml内からそれぞれを抽出します.同じような処理が続いていますが,これは上記した理由でこうなっています.urlを科目ごとに変えることで科目ごとのキーワードが取得できます. # Webページを取得して解析する url = "https://tpuwswebsv.pu-toyama.ac.jp/public/web/Syllabus/WebSyllabusSansho/UI/WSL_SyllabusSansho.aspx? P1=1025535&P2=2021&P3=20210401" html = requests.get(url) soup = BeautifulSoup(html.content, "html.parser") #授業科目 koginame = soup.find(id = 'lblKogiName').text #キーワード keyword = re.split('[,_,_、]',soup.find(id ='lblHyokaHoho').text.strip().replace(' ','')) 最後に全てのキーワードをまとめてcsvファイルで出力します. keyword_all = [] keyword_all.append(keyword) keyword_all.append(keyword1) keyword_all.append(keyword2) keyword_all.append(keyword3) keyword_all.append(keyword4) #print(keyword_all) koginame_Df = pd.DataFrame(keyword_all,index=[f'{koginame}',f'{koginame1}',f'{koginame2}',f'{koginame3}',f'{koginame4}'],columns=None) print(koginame_Df) koginame_Df.to_csv('C:/Users/takky/富山県立大学/研究室/卒業研究/RecommendSystem/New Demodata/koginame.csv',columns=None,encoding='shift-jis') #ref(ss2.png,,50%) このようなcsvファイルが出力されればOKです.csvファイルの出力先はお好きな場所に変更してください.~ 次はこのcsvファイルを使ってwebページとyoutubeからのスクレイピングを行います.
テキスト整形のルールを表示する