プログラミング初心者です。
(うまく質問内容が欠けているか自信がありませんので、
もし意味の分からない部分があればお申し付けください。)
pythonでスクレイピングを行うプログラムを作成し、
WEBページから得たテキスト情報をブラウザ上で表示させるようなアプリケーションを
作りたくてプログラミングをしております。
brythonをつかって、pythonでの実行結果をJavaScriptで呼び出す流れです。
以下がブラウザ上で動作させるためのHTMLのコードです。
HTML
1<!DOCTYPE html> 2<html> 3 <head> 4 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 5 <title>最新情報</title> 6 <meta charset="utf-8"> 7 <meta name="description" content="堺市の現在の天気の表示をする"> 8 <meta name="author" content="koko"> 9 <meta name="viewport" content="width=device-width, initial-scale=1"> 10 <link rel="stylesheet" href="stylea.css"> 11 <!--[if lt IE 9]> 12 <script src="//cdn.jsdelivr.net/html5shiv/3.7.2/html5shiv.min.js"></script> 13 <script src="//cdnjs.cloudflare.com/ajax/libs/respond.js/1.4.2/respond.min.js"></script> 14 <![endif]--> 15 <!-- ☆Brython関連ファイルをサーバにアップロードした場合には、 16 brython.jsの位置を指定する --> 17 <script src="src/brython.js"></script> 18 <!-- ☆Brython関連ファイルをサーバにアップロードしない場合には、 19 以下の記述を有効にする --> 20 <!--<script src="http://brython.info/src/brython_dist.js"></script>--> 21 </head> 22 <body onload="brython()"> 23 <script type="text/python" src="omikuji_tenki3.py"></script> 24 <!-- Place your content here --> 25 <!-- SCRIPTS --> 26 <!-- Example: <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> --> 27 <div class="main_area"> 28 <h1>堺市の天気</h1> 29 <a href="#" id="submit_button">天気を見る</a> 30 <div id="result"></div> 31 <h2>ボタンを押すと現在の堺市の天気が分かります</h2> 32 <p>「天気を見る」をクリックしてください。すると現在の天気が表示されます。</p> 33 <h2>注意点</h2> 34 <ul> 35 <li>JavaScriptを有効にしてください。</li> 36 <li>ブラウザによってはうまく動作しないおそれがあります。</li> 37 </ul> 38 </div> 39 </body> 40</html>
また、pythonファイルを下記に示します、
ここではまだスクレイピングの記述はしていません。
(一定の確率で、天気の内容がおみくじのように表示させるプログラムです。)
import requests
from bs4 import BeautifilSoup
の2行を入れる前はうまく動きました、
python
1import requests 2from bs4 import BeautifilSoup 3import random 4import browser 5 6 7 8 9KUJI = {"晴れ": 45, "曇": 21, "雨": 10, "雪": 3, "あられ": 1, "みぞれ": 1, "嵐": 2, "猛暑": 12, "台風": 4} 10 11KUJILIST = [] 12for k, v in KUJI.items(): 13 KUJILIST += [k] * v 14 15 16def omikuji(ev): 17 18 # Get the result 19 result = random.choice(KUJILIST) 20 21 # Output 22 res_elt = browser.document["result"] 23 res_elt.text = ("実験") 24 25 26sub_elt = browser.document["submit_button"] 27sub_elt.bind("click", omikuji)
しかし、
import requests
from bs4 import BeautifilSoup
を入れると下記のようなエラーメッセージがブラウザのコンソールに表示されます。
brython.js:7701 GET https://。。。中略。。。/src/Lib/site-packages/bs4.py?v=2 404 (Not Found) $download_module @ brython.js:7701 import_py @ brython.js:7735 import_from_site_packages @ brython.js:7840 $B.$import @ brython.js:7898 $B.$import_from @ brython.js:7915 eval @ VM1067:11 brython @ brython.js:4372 onload @ index_sakai_3.html:22 brython.js:7697 Error 404 means that Python module bs4 was not found at url https://。。。中略。。。/src/Lib/site-packages/bs4.py brython.js:7701 GET https://。。。中略。。。/src/Lib/site-packages/bs4/__init__.py?v=3 404 (Not Found) $download_module @ brython.js:7701 import_py @ brython.js:7735 import_from_site_packages @ brython.js:7840 $B.$import @ brython.js:7898 $B.$import_from @ brython.js:7915 eval @ VM1067:11 brython @ brython.js:4372 onload @ index_sakai_3.html:22 brython.js:7697 Error 404 means that Python module bs4 was not found at url https://。。。中略。。。/src/Lib/site-packages/bs4/__init__.py brython.js:7701 GET https://。。。中略。。。/bs4.py?v=4 404 (Not Found) $download_module @ brython.js:7701 import_py @ brython.js:7735 import_from_caller_folder @ brython.js:7866 $B.$import @ brython.js:7898 $B.$import_from @ brython.js:7915 eval @ VM1067:11 brython @ brython.js:4372 onload @ index_sakai_3.html:22 brython.js:7697 Error 404 means that Python module bs4 was not found at url https://。。。中略。。。/bs4.py brython.js:7701 GET https://。。。中略。。。/bs4/__init__.py?v=5 404 (Not Found) $download_module @ brython.js:7701 import_py @ brython.js:7735 import_from_caller_folder @ brython.js:7866 $B.$import @ brython.js:7898 $B.$import_from @ brython.js:7915 eval @ VM1067:11 brython @ brython.js:4372 onload @ index_sakai_3.html:22 brython.js:7697 Error 404 means that Python module bs4 was not found at url https://。。。中略。。。/bs4/__init__.py brython.js:5200 ImportError: cannot import bs4 Traceback (most recent call last): brython.js:4381 Uncaught Error: cannot import bs4 at Object._b_.ImportError (eval at $make_exc (brython.js:7080), <anonymous>:337:496) at Object.$B.$import (brython.js:7908) at Object.$B.$import_from (brython.js:7915) at eval (eval at brython (brython.js:4372), <anonymous>:11:4) at brython (brython.js:4372) at onload (index_sakai_3.html:22)
また、これについてもう一週間以上調べているのですが、Brython に関する情報がネット上に上がっている情報が少なくどうしようもない状態です。
【わかっていること】
・BrythonではBeautifulSoupはサポートされていない?
=>しかし、実現したい機能をBeautifulSoupを用いずに実現できる方法はあるか?
(モジュールがあるか?)
・beautifulsoup4、requestsもインストールされています
Linux
1[ec2-user@ip-172-31-45-219 ~]$ sudo pip list 2Package Version 3---------------- --------- 4beautifulsoup4 4.8.1 5boto 2.49.0 6boto3 1.14.49 7botocore 1.17.49 8browser 0.0.1 9brython 3.8.9 10bs4 0.0.1 11certifi 2019.9.11 12chardet 3.0.4 13cssselect 1.0.3 14docutils 0.15.2 15EasyProcess 0.3 16entrypoint2 0.2.1 17gensim 3.8.3 18idna 2.8 19jeepney 0.4.3 20jmespath 0.10.0 21lxml 4.5.0 22mss 6.0.0 23mysqlclient 1.4.4 24numpy 1.17.3 25Pillow 7.2.0 26pip 19.2.1 27pyscreenshot 2.2 28python-dateutil 2.8.1 29pytz 2019.3 30PyVirtualDisplay 0.2.4 31requests 2.22.0 32s3transfer 0.3.3 33scipy 1.5.2 34selenium 3.141.0 35setuptools 40.6.2 36six 1.15.0 37smart-open 2.1.1 38soupsieve 1.9.5 39tqdm 4.37.0 40urllib3 1.25.6
分からない文章があれば、お申し付けください。
何卒よろしくお願い申し上げます。