2

次のような webbrowser モジュールを使用して、非常に簡単に web ページを開くことができることを知っています。

import webbrowser
webbrowser.open('http://www.google.com')

しかし、これらの Web サイトにログイン資格情報を渡すことは可能ですか? たとえば、firefox で gmail を開いてメールをチェックするなど、定期的に行っている作業を自動化するスクリプトを作成したいと考えています。

また、可能であれば、このスクリプトで安全な方法でパスワードを入力していただけますか? したがって、コードではっきりと言うのではなく:

pw = "defaultPass123"
webbrowser.sendPass(pw) # made up function, I don't think this actually works :)

どういうわけかこのデータを暗号化できますか?

4

3 に答える 3

0

Google のサイトへのアクセスに関する質問ですか、それともサイト全般に関する質問ですか? 前者の場合、Google はほとんどのサービスに API を提供しており、通常、サポートされている言語として Python が含まれています。たとえば、Python で Gmail をチェックするには、http://code.google.com/p/google-mail-xoauth-tools/wiki/XoauthDotPyRunThroughの手順に従います。

Google の世界以外でも、最初に尋ねるべき質問は「このサイトは API を公開していますか?」です。そうであれば、Web ブラウザーをシミュレートしたり、ブラウザーをリモートで操作したりするよりも、はるかに簡単に使用できます。

ブラウザーをリモートで操作したいだけだと判断した場合は、別のアプリケーションからほとんどすべての Web ブラウザーを簡単に操作できるSeleniumを検討してください。

于 2011-08-11T08:01:02.003 に答える
0

サーバーが認証を処理する方法によっては、トリックを実行する GET 要求を作成できる場合があります。

from urllib import urlencode

credentials = {
    'username': 'bob',
    'password': 'secret'}
url = "http://example.com/login?" + urlencode(credentials)

これが機能するかどうかは、アクセスしようとしているサービスによって異なります。POST 要求を使用して認証できる場合もありますが、外部ブラウザーでサイトを開くことが目的の場合、POST 要求の詳細を外部ブラウザーに渡す一貫した方法はありません。


はい、パスワードを暗号化できます。ただし、スクリプトはパスワードをサーバーに送信するためにパスワードを解読する必要があるため、スクリプトにアクセスできる人なら誰でもパスワードを読み取ることができます。(ただし、プログラマー以外のカジュアルなスヌーパーがパスワードを読み取れないようにする可能性があります。)

于 2011-08-11T06:50:33.720 に答える
0

はい、OpenID を使用して可能です。

http://openid.net/

OpenID は基本的に、ユーザー/プログラムがログイン名とパスワードを公開せずにログインできるようにするログイン メカニズムです。私の知る限り、Google アカウントをお持ちの場合は、すでに OpenID を使用できます。Yahoo Facebook MySpace Flickr など、他の多くの企業も OpenID を実装しています。

于 2011-08-11T06:53:53.010 に答える