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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Python

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

Q&A

4回答

707閲覧

webアプリによりwebブラウザ自動操作

MRKskysax

総合スコア6

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Python

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

0グッド

4クリップ

投稿2018/03/06 19:16

前提・実現したいこと

Webアプリケーションを制作しています。
Webアプリ(サイト内のボタン)をクリックすると自動でブラウザが立ち上がって、自動でログインして自動で好みの操作をする。
という実装をしたいです。

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

Pythonを使っての操作やVBAによってブラウザ操作する方法は理解しているのですが、
それをWebアプリケーションとして完成させる方法がわからず悩んでいます。

該当のソースコード

Python3
ソースコード
from selenium import webdriver
from selenium.webdriver.common.keys import Keys

driver = webdriver.Firefox()
driver.get("http://www.python.org")
assert "Python" in driver.title
elem = driver.find_element_by_name("q")
elem.clear()
elem.send_keys("pycon")
elem.send_keys(Keys.RETURN)
assert "No results found." not in driver.page_source

試したこと

以下のようなHtmlへのPythonの埋め込みを利用して実装してみたもののうまくいきません。
どうかわかるかた教えてください!!

<script type="text/javascript" src="pystachio.js"></script> <script type="text/python"> <!-- temp = "hello, world!" def something(temp): return temp print something(temp) #--> </script>

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

guest

回答4

0

  1. ローカルでネイティブアプリケーションを立ち上げる
  2. ネイティブアプリでWebSocketサーバーを立ち上げる
  3. ブラウザからローカルホスト上のネイティブアプリケーションに、WebSocketで接続する
  4. サーバーからデータを受け取り、ブラウザを経由してネイティブアプリケーションに命令を送信し、クローラーを起動する

以上の手順で可能です。
クローラーはPythonをキックしてもいいですし
ネイティブアプリ内にWebBrowserControlなどで実装してもいいでしょう。

投稿2018/03/07 00:20

編集2018/03/07 00:23
tekka

総合スコア514

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

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

guest

0

無理です

セキュリティ上、「ブラウザ内のコードからブラウザを自動操作する」なんていうことは、許されていません。

投稿2018/03/06 20:53

maisumakun

総合スコア145183

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

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

退会済みユーザー

退会済みユーザー

2018/03/06 21:28

Securityを下げたIE限定で、ActiveX での操作可能な範囲で可能だったはず ( JS 起点 )
guest

0

そういう機能をもったブラウザアドインを開発して、ブラウザに組み込む必要があります。

投稿2018/03/07 03:56

otn

総合スコア84529

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

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

0

無理です
出来たとしてもWebアプリでやる意味がないんで設計を変えて下さい。

以下のようなHtmlへのPythonの埋め込みを利用して実装してみたもののうまくいきません。

これはPythonのソースコード文字列を無理やりJavaScript(以下JS)に変換して動作させるものです。
(いわゆるトランスパイルやAltJS等と呼ばれるジャンルのやり方)
要するにJSに変換してるだけなんで、JS以上の事は出来ません。

JSはその昔、セキュリティがガバガバだったIEと連携してローカルのファイルを勝手に読み書き、
まぁCドライブの中を勝手に消去したり、デスクトップにあるファイルを勝手に吸い出してどっかにアップロードするようなものも簡単に作れてました。
JSからパソコンにログインしているユーザー権限で任意のコードを打ち込んでシステムをクラッシュさせるような仕組みもあったと記憶しています。

要するにJSにそれだけの権限をもたせると、
悪意のサイトを開いただけでパソコン内のファイルを抜かれたり、システムがクラッシュする恐れがありますので、
JSはローカルのファイル等を一切触ることは出来ません。

それはあまりに不便だというのでHTML5でFile API等が実装されましたが、
これは<input type="file">等のタグからユーザーがファイル指定したものしか操作出来ない等、
非常にシビアな制限下での活動になります。


絶対に無理なのか?に関しては、まぁ抜け道はあります。
恐らくChrome限定ですけどね。

参考記事: ChromeでiTunesを起動!「外部プロトコル リクエスト」の対処法

でも、自作のアプリを動かすというのは茨の道でしょうね。
asahina1979さんが仰るように、セキュリティレベルを引き下げたIEからActiveXで発火させたほうがまだ楽でしょう。


Webアプリ(サイト内のボタン)をクリックすると自動でブラウザが立ち上がって、自動でログインして自動で好みの操作をする。

という実装をしたいです。

動機が分からないから何とも言えません。
ブラウザを立ち上げて自動でログインして自動で好みの操作をするというメリットが良くわからないんですよね。

ログインしてあれこれしたいなら、RESTfulAPIサーバが用意されてるサーバーも多く、
そういったサービスの場合まず裏で本物のブラウザを立ち上げる意味がありません。
また、銀行やビットコイン取引所等は堅牢なログインシステムがあるので自動ログイン等を組み込む事は非常に困難です。

従って、RESTのAPIサーバが用意されておらず、ログインして操作するのが効果的な中堅サイトと仮定すると、
PythonかなんかでCLIツールを作ってコマンドで操作出来るようにしたほうが楽なのではないかと思います。

投稿2018/03/07 01:45

miyabi-sun

総合スコア21158

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問