pythonでスクレイピングした結果をhtmlに表示するには!!!????
htmlを読み込むとpythonが天気情報をスクレイピングしてその結果がJavaScriptを通じてhtmlに反映されるようにしたいのです。
下のサイトを参考にしています。

Djangoという名のフレームワーク
APIってどんな風に使うんだろう・・・
こんなことはAPI使うのかな?
と思っていたらただのスクレイピングでした。

この記事がとてもわかりやすく、真似してつくりました。

import requests from bs4 import BeautifulSoup #tenki.jpの目的の地域のページのURL(東京都調布市) url = 'https://tenki.jp/forecast/4/19/5510/16201/' #HTTPリクエスト r = requests.get(url) bsObj = BeautifulSoup(r.content, "html.parser") today = bsObj.find(class_="today-weather") weather = today.p.string #天気 #print(today) print(weather) print("天気:{}".format(weather))
結果
曇 天気:曇
とても、シンプルにできました。
すばらしい・・・・
で、この結果をブラウザで表示させるには???????
と調べていると、どうやらpythonのflaskというライブラリーを使うらしい、ということ。
ということでまずはターミナルでインストール
pip3 install flask
こっちはHTMLから情報を受け取って、pythoで処理をしてhtmlに変えすしくみ。

しかし動かない。
わからない。
htmlを読み込むとpythonが天気情報をスクレイピングしてその結果がJavaScriptを通じてhtmlに反映されるようにしたいのです。
Flaskではなく、Djangoも同じ働きをするようです。
次の記事がとてもやさしかったです。
Djangoにきめた
なぜならDjangoの方が教材が豊富だったからです(amazonで検索した結果)
このページを参考にしました。


インストールして、プロジェクトフォルダをつくる。
pip3 install django
ここからが違う・・・
コンソールでフォルダ、ファイルを作ってもらいます。
まずフォルダを作りたい場所に移動します。
コンソールで
cd /Users/otonone/Desktop/python_lesson/Django/
を実行すると
:Django [ユーザー名]のような表示がでてきます。
次にそのままプロジェクトファイルを作ってもらうコマンドを実行します。
django-admin startproject tryproject
tryDjango
は作成するファイル名です。自由な名前でかまわないそうです。
tryprojectフォルダができました。
サーバーとつなげる。
今までHTML文書を書いてその場でブラウザで読ませていました。
Djangoでは、サーバーでpythonを実行させるようです。(JavaScriptはブラウザで読み込まれるのであってサーバーはJSの情報をブラウザに渡すだけです)
正直なぜサーバーなのかはっきりと説明できないのですが。
そして、起動・・・ターミナルから動かさないといけない模倣。
サーバーを動かしてねという指示はmanage.py に書かれているようです。
cd tryproject
python3 manage.py runserver
そしてエラー
No such file or directory
とでた。
desktopにフォルダを移動したせいか。
指定してみる。
$ /Users/otonone/Desktop/python_lesson/Django/tryproject $ python3 manage.py runserver
うまくいったかな?
次にブラウザでサーバーに接続。
にアクセス。
うまくいかなかったので指示通りなにがしかをインストール。
pip3 install sqlparse
しかしブラウザが読み込まれない。
公式のチュートリアルを見つけるのでそれに従って試そう。

Djangoインストールされているのかな。。。とおもって確認。、
jupyter lab で
import django print(django.get_version())
とうてばDjangoのヴァージョンがでる。
3.1.7
でた。
コンソールで
python3 -m django --version
と打っても同じ結果になった。
一つづつ実行していきました。
$ cd /Users/otonone/Desktop/python_lesson/Django/tryproject
を実行してから
$ python3 manage.py runserver
を実行。
そしたら・・・
Django version 3.1.7, using settings 'tryproject.settings' Starting development server at http://127.0.0.1:8000/
成功したみたいだ!
アクセス!
やりました!
よくみると、cd(ディレクトリーを指定するコード)が抜けていたのでした。
てへ。
さて次は・・・・とおもいチュートリアル読んでいくと次の文言が。
このサーバは開発中の利用だけを考えて作られています。絶対に運用環境では 使わないでください (筆者たちの専門は Web フレームワークであって、Web サーバではありません)。
ん??
さて次は・・・アプリケーションフォルダを作成??やってみよう。
こちらも参考に。公式と見比べながら読み解いていきます。

アプリケーションを作るには、
manage.py
と同じディレクトリに入って、このコマンドを実行します:
アプリを作成する模様。
次のコマンドでアプリケーションフォルダなるものをつくるそうです。
$ cd /Users/otonone/Desktop/python_lesson/Django/tryproject $ python3 manage.py startapp tryapp
manage.pyに「startapp」というコマンドの詳細が書かれているとのこと。アプリケーションフォルダを作成するコマンドを呼び出すコマンドです。
アプリケーション名は任意の名前でかまわないそうです。
実行結果。
command not found
エラーがでる。なぜ?
これだけ実行してみた。
python3 manage.py startapp tryapp
成功した、なぜ?
ファイルが作成されました。
ふう。。
プロジェクトファイルとアプリケーションファイルをつくりました(復習)
プロジェクトファイルは次のコマンドでつくります。
urls.pyをつくってくれます。
django-admin startproject プロジェクト名
models.pyとtemplatesフォルダとviews.pyは次のコマンドでつくります。
python3 manage.py アプリ名
プロジェクト名とアプリ名の二つのフォルダが作成されます。
プロロジェクトフォルダとアプリフォルダの違い
プロジェクトは、一つのサイトで使う全体のアプリを含みます。
そのひとつひとつのアプリが
例えばログインするときに動くアプリ
動画を再生する時に使うアプリ
検索をする時に使うアプリ
など違った仕事をしてくれます。
日常的に使われている「アプリ」という言葉とは意味が違いますね。
コメント