2012-02-26 10 views
1

私の大学で私の現在の学生記録を取得するプロセスを自動化しようとしています。ブラウザでは、私の大学のURLを入力し、次にログインリンクをクリックしてhttps:// URLページに移動します。私は自分のパスワードとユーザー名を入力しました。それからそこから1つまたは2つ以上ですリンクして、ページのテキストを読んでください。さて、私の質問は、どうやってこの作業を自動化していくのでしょうか?私の記録はコマンドラインに表示されます。 URL内のhttps://は、SSLを使用していると考えていますが、これを処理できる特定のライブラリがありますか?また、ログインページの 'submit'ボタンはJavaScriptを使用していると確信していますが、これを処理するライブラリはありますか?PythonでSSLウェブサイトを制御する

私の質問の説明で何かを忘れてしまったと確信していますので、私の質問が分からない、または詳細が必要な場合は質問してください。

PS。私はインターネットプロトコルに精通しておらず、Pythonも新しくなっています。実際、私はこのプロジェクトのために勉強を始めました。しかし、私はCに堪能で、私はC++にはかなり良いです。

ありがとうございます。 Michael、

答えて

0

ブラウザで行うすべての操作を模倣する必要はありません。

最初。あなたがそれらを確認する必要がない限り(それはあなたがする必要はありません)、urllib2.urlopenそれらを処理する限り、https/SSLで問題はありません。

秒。 [Submit]をクリックすると、ブラウザはユーザー名、パスワード、その他のデータをサーバーに要求します。その要求のタイプはおそらくPOSTです。レスポンスサーバはセッションIDを持つCookieを送信します。したがって、サーバへのリクエストの正確なフォーマット(FireBugなど)を調べて、サーバの応答からCookieを取得するだけです。

第3。そのクッキーを使用して、サイトのページをナビゲートしてください。 Thisが役立つ可能性があります。

P.S.ご存じのように、答えには多分「おそらく」言葉があります。正確な認証プロセスは上記の説明とは異なる場合があり、あなた自身で調査する必要があります。

+0

HTTPSのための 'urllib2'は、接続をMITM攻撃に対して脆弱にする証明書(リンクされたドキュメントの赤いボックスを参照)を検証しないので、HTTPSのために' urllib2'を避けるべきです。 (証明書を自分で検証するコードを追加しない限り、 'httpclient'も同じです。)pycurlのようなものが良い選択でしょう。 – Bruno

0

ローマの答えは良いアドバイスです:あなたのスクリプトが直接HTTPメソッドを呼び出すことができるときには、通常、実際のユーザーのように行動する必要はありません。

しかし、サイトが必要とするHTTP操作をリバースエンジニアリングするのが難しい場合は、SeleniumというWebページとのやりとりをシミュレートするツールを使用する方法もあります。 Seleniumは通常、Webアプリケーション開発者がアプリケーションをテストするために使用されますが、既存のWebサイトの自動化可能なクライアントとしても使用できます。

関連する問題