HTML ページを読み取って解釈し、onClick 関数を実行して結果の新しい HTML ページを受け取ることができる Python ベースの Web ボットを作成しようとしています。私はすでに HTML ページを読むことができ、onClick コマンドによって呼び出される関数を特定できますが、それらの関数を実行する方法や結果の HTML コードを受け取る方法がわかりません。
何か案は?
onclickイベントの後に送信されるものをスニッフィングして、ボットで複製してみませんか?
V8を活用してみることができます。
V8 は、Google のオープン ソースの高性能 JavaScript エンジンです。C++ で書かれており、Google のオープン ソース ブラウザである Google Chrome で使用されています。
Python
DOM を提供するフレームワークがなければ、
それを呼び出すのは簡単ではないかもしれません。には、実行のための統合を提供Pyjamas
する実験的なプロジェクトPajamas Desktopがあります。V8
Javascript
Pyv8
実験的な python v8 バインディングと python-javascript コンパイラです。
このブラウザの部分については、基本的に Python ライブラリとして実装された Web ブラウザである Mechanize を調べることをお勧めします。http://pypi.python.org/pypi/mechanize/0.1.11 しかし、前述のように、テキスト n onClick は Javascript であり、そのためには Spidermonkey が必要です。
mechanize で Spidermonkey の汎用サポートを作成できれば、多くの人が非常に喜んでくれると思います。;)
Mechanize はやり過ぎかもしれません。HTML の特定の部分を見つけたいだけかもしれませんが、lxml と BeautifulSoup はどちらもうまく機能します。
Web 自動化については、「 webbot」ライブラリを調べることができます。これにより、自動化が非常にシンプルになり、痛みがなくなります。
webbot は、ID とクラス名が動的に変化する Web ページでも機能し、selenium や mechanize よりも多くのメソッドと機能を備えています。
ここに webbot のスニペットがあります
from webbot import Browser
web = Browser()
web.go_to('google.com')
web.click('Sign in')
web.type('mymail@gmail.com' , into='Email')
web.click('NEXT' , tag='span')
web.type('mypassword' , into='Password' , id='passwordFieldId') # specific selection
web.click('NEXT' , tag='span') # you are logged in ^_^