1

非常に難読化されたJavaScriptを使用して通常のHTML要素を非表示にするHTML4.0Webサイトを操作しようとしています。私がやりたいのは、フォームに記入して返された結果を読むことですが、これは予想よりも難しいことが証明されています。

Firebugを使用してページを読むと、難読化が解除されたソースコードが表示され、これを使用して目的の処理を実行できます。Firebugの出力には、元のソースに隠されていた-tagsなどのWebサイトの通常の要素がすべて表示されていました。

アプリケーションの残りの部分をPythonで記述し、mechanizeを使用して他のWebサービスと対話しているので、可能であれば、既存のPythonモジュールを使用してこれを実行したいと思います。問題は、機械化が理解できる方法でソースコードを読み取る方法だけでなく、Webサーバーが解釈できる応答を生成する方法でもあります。HTMLコードが難読化されていても、通常の機械化コントロールを使用できますか?

私のプロジェクトの初めに、私は機械化する代わりにpywebkitgtkを使用しましたが、Pythonで実際にうまく実装されていなかったため、それを捨てました。ほとんどの機能がありません。HTMLを読み取ったWebkitブラウザーを起動し、それをmechanizeで使用するには、おそらくそれが賢明な方法でしょうか?

どんな助けでも大歓迎です、私は本当にここで拘束されています。ありがとう!

編集:mechanizeからフェッチしたHTMLをダンプし、pywebkitgtkで開き、load_html_stringを使用して、そのようにhtmlを評価してみました。残念ながら、私が解析しようとしているドキュメントはより多くのリソースを動的にロードするため、そのスクリプトはリソースがロードされるのを待つのをやめます。mechanizeのCookieJar関数を使用して最初にログインできるようにするため、Webkitを使用してドキュメント自体をロードできないことに注意してください。

また、WebkitからHTMLをダンプしようとしましたが、Webサイトを完全に正常に表示しながら、何らかの理由で難読化されたjavascriptのみをダンプしました。WebkitがFirebugのように難読化解除されたJavaScriptをダンプできれば、それを操作して、クリーンなコードに従ってリクエストを作成できます。

4

1 に答える 1

1

ページを処理しようとするのではなく、Firebug を使用してフォーム フィールドの名前を把握し、httplib などを使用して必要なフィールドと設定を含むリクエストを送信するのはどうですか?

ajax を使用して送信された場合、Firebug でもサーバーに送信されている値を特定できるはずです。

于 2011-10-22T16:27:38.557 に答える