ホームページ >バックエンド開発 >Python チュートリアル >Python を使用して Web サイトにログインする方法の詳細な例

Python を使用して Web サイトにログインする方法の詳細な例

Y2J
Y2Jオリジナル
2017-04-25 09:55:182149ブラウズ

この記事では、主に Python ログイン Web サイトの詳細と例に関する関連情報を紹介します。必要な友人は参考にしてください。

ほとんどのフォーラムでは、投稿をキャプチャして分析したいと考えています。最初にログインする必要があります。ログインしないと表示できません。

これは、HTTP プロトコルがステートレス プロトコルであるためです。サーバーは、現在接続を要求しているユーザーがログインしているかどうかをどのようにして知るのでしょうか。

URI でセッション ID を明示的に使用する方法と、
  1. Cookie を使用する方法の 2 つがあります。Web サイトにログインした後、Web サイトの閲覧を続けると、Cookie がローカルに保持されます。ウェブサイト、ブラウザ Cookie はアドレス要求とともに送信されます。

  2. Pythonは非常に豊富なモジュールを提供しているので、この種のネットワーク操作はほんの数文で完了できます。例として QZZN フォーラムへのログインを取り上げます。実際、次のプログラムはほぼすべての PHPWind タイプのフォーラムに適用できます。
  3. # -*- coding: GB2312 -*-
    from urllib import urlencode
    import cookielib, urllib2
    
    # cookie
    cj = cookielib.LWPCookieJar()
    opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
    urllib2.install_opener(opener)
    
    # Login
    user_data = {'pwuser': '你的用户名',
           'pwpwd': '你的密码',
           'step':'2'
          }
    url_data = urlencode(user_data)
    login_r = opener.open("http://bbs.qzzn.com/login.php", url_data)
いくつかのメモ:

urllib2 は明らかに urllib よりも高度なモジュールであり、Cookie の使用方法が含まれています。
  • urllib2 では、各クライアントはオープナーによって抽象化でき、各オープナーは複数のハンドラーを追加して機能を強化できます。
  • オープナー構築時にハンドラーとしてHTTPCookieProcessorを指定しているため、このハンドラーはCookieをサポートしています。
  • isntall_opener を使用した後、このオープナーは urlopen を呼び出すときに使用されます。
  • Cookieを保存する必要がない場合は、cjパラメータを省略できます。
  • user_data には、ログインに必要な情報が保存されます。フォーラムにログインするときにこの情報を渡すだけです。
  • urlencode 関数は、辞書 user_data を「?pwuser=username&pwpwd=password」の形式にエンコードすることで、プログラムを読みやすくするために行われます。

  • 最後の質問は、pwuser や pwpwd のような名前はどこから来たのかということです。これには、ログインが必要な Web ページを分析する必要があります。一般的なログイン インターフェイスはフォームであることがわかり、その抜粋は次のとおりです:
  • <form action="login.php?" method="post" name="login" onSubmit="this.submit.disabled = true;"> 
    <input type="hidden" value="" name="forward" /> 
    <input type="hidden" value="http://bbs.qzzn.com/index.php" name="jumpurl" /> 
    <input type="hidden" value="2" name="step" /> 
    ... 
    <td width="20%" onclick="document.login.pwuser.focus();"><input type="radio" name="lgt" value="0" checked />用户名 <input type="radio" name="lgt" value="1" />UID</td> 
    <td><input class="input" type="text" maxLength="20" name="pwuser" size="40" tabindex="1" /> <a href="reg1ster.php" rel="external nofollow" >马上注册</a></td> 
    <td>密 码</td> 
    <td><input class="input" type="password" maxLength="20" name="pwpwd" size="40" tabindex="2" /> <a href="sendpwd.php" rel="external nofollow" target="_blank">找回密码</a></td> 
    ... 
    </form>
ここから、入力する必要があるユーザー名とパスワードが pwuser と pwpwd に対応し、step がログインに対応していることがわかります (これは私が行ったものです)試してみました)の)。

このフォーラムのフォームが post メソッドを使用している場合は、この記事のメソッドを変更する必要があることに注意してください。直接開くことはできませんが、最初にリクエストしてから開く必要があります。詳細についてはマニュアルを参照してください...

以上がPython を使用して Web サイトにログインする方法の詳細な例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。