質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

3回答

4282閲覧

Pythonで開いたhtmlを書き換えたい

cwbbq088

総合スコア4

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/02/22 16:44

前提・実現したいこと

PythonでローカルPC(Windows10)で動かすアプリ(つまり自分しか使わないアプリ)を作っています。アプリにはボタンや入力窓といったGUIを使いたいので、はじめはTkinterを追求していたんですが、技術面その他の理由で断念し、いまはPythonでローカルPCにあるhtmlファイルをwebブラウザ(Chrome)で開き、ここにGUIを配置することを考えています。

発生している問題・エラーメッセージ

PythonでhtmlファイルをChromeで開くまではいいんですが、その後でhtmlのテキストを書き換える方法がわかりません。BeautifulSoupやSeleniumといったライブラリは、html内の要素を取得したりクリックしたりすることまではできるんですが、タグ内のテキストを書き換える方法を見つけることができませんでした。ライブラリの選択で解決可能かどうかわかりませんが、こういうケースについてアドバイスいただけると幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hayataka2049

2020/02/22 19:21

「PythonでローカルPCにあるhtmlファイルをwebブラウザ(Chrome)で開き、ここにGUIを配置する」で何をするかわからないので、質問を編集してもう少し詳しい説明を追記していただけないでしょうか。
hoshi-takanori

2020/02/22 20:20

「htmlを書き換えたい」という発想ではなく、python で Web サーバーを動かして、動的に html を生成して返すことを考えましょう。
cwbbq088

2020/02/23 00:50

hayataka2049さん、ありがとうございます。例えば電卓アプリのような、入力ボタンと結果表示エリアが存在しているアプリをwebブラウザ上で実現したいです。 hoshi-takanoriさん、ありがとうございます。おっしゃる趣旨は、htmlを部分的に書き換えるのではなく、全部を書き換えよということでしょうか。確かにそれなら実現できそうです。更問すみませんが、もし誤読していたらご指摘お願いします。
hoshi-takanori

2020/02/23 00:57

誤読というか、Web アプリケーション開発に関する基礎知識を持っていらっしゃらないのだと思いますので、その辺を勉強する必要があると思います。ちなみに、私が提案しているのはサーバーサイド Web アプリケーションで、katoy さんが提案しているのはクライアントサイド Web アプリケーションになります。それぞれ何を意味するかを解説すると長くなりますので、適宜ググってください。
hayataka2049

2020/02/23 02:03

ちょっと私の理解が及ばないので、聞き方を変えます。 「PythonでローカルPCにあるhtmlファイルをwebブラウザ(Chrome)で開き、ここにGUIを配置する」は、とりあえずPythonからchromeを立ち上げる(特定のhtmlファイルを開くよう指定して)という意味だと理解しています。それで合っていますか? この欄への返信は通常折りたたまれますので、質問の編集機能を使ってください。
cwbbq088

2020/02/23 02:16

はい、おっしゃるとおりです。ただ、私の理解不足に気づいたため、質問を閉じさせていただきました。ありがとうございました。
guest

回答3

0

自己解決

hoshi-takanoriさんの2020/02/23 09:57を読んでいろいろ調べたところ「Pythonはサーバーサイドの言語であって、たとえローカルPC内で完結していても、コマンドプロンプトからPythonを動かしている限り、その事実は変わらない」ということに気づきました。

そのつもりで調べると、Brythonなるライブラリを使えば、html内でjavascriptと同じ手つきでPythonを動かすことができるらしいことがわかったので、この質問は閉じさせていただき、聞きたいことを整理して別途質問させていただきます。

大変お騒がせしました。勉強になりました。

投稿2020/02/23 02:12

cwbbq088

総合スコア4

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hayataka2049

2020/02/23 02:15

それを使うは事実上の苦行です。>Brythonなるライブラリ JavaScriptで書いた方が100倍楽だと思いますが。
cwbbq088

2020/02/23 02:28

そうなんですか。外部サイトの操作も予定していたので、seleniumの利用は不可避かなと思っていたんですが、seleniumはjavascriptでは使えないのかなと思い、こんな方向になってしまいました。数年前はsafariでもchromeでも普通に外部サイトのボタンをクリックできたりしていたのですが、クロスドメイン制約が厳しくなってしまったせいか、javascriptをあきらめつつあった次第です。
guest

0

pythonのプログラムでそういうことをしたいのであれば、たぶんwebアプリケーションとして作ってlocalhostで動かすのを想定しているのだろうと憶測することはできますが……

ボタンや入力窓といったGUIがほしいだけなら、かえって難しいと思われます。

投稿2020/02/23 02:10

hayataka2049

総合スコア30935

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

cwbbq088

2020/02/23 02:20

「webアプリケーションとして作ってlocalhostで動かす」とはローカルPCをサーバーサイドと見立てるという趣旨だと思いますが、私にその意識は欠けていたため、質問を閉じさせていただきました。ありがとうございました。
guest

0

html の操作は pytrhon でできますが、 html の表示変更はできないです。
html の表示を変更するには javascript を使います。

参考情報

  • [JavaScript] HTML内の文字を動的に変更する(innerText)

https://javascript.programmer-reference.com/js-dom-inntertext/

投稿2020/02/22 22:01

katoy

総合スコア22324

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

cwbbq088

2020/02/23 00:45

katoyさん、ありがとうございます。Python上でjavascriptを動かすにはseleniumのexecute_script関数がありますが、これを使うのでしょうか。更問すみませんが、もし誤読していたらご指摘お願いします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問