基本的なプログラミングのpython:

この記事では、着陸githubの実装方法をシミュレートPythonの要求を説明し、非常に詳細に説明した紙サンプルコードは、習得したり、作業するために私たちのすべてのための学習の一定の基準値を持って、私たちは一緒に学ぶ学ぶために以下の小扁と友達を必要としますそれは

  1. クッキーの紹介

HTTPプロトコルはステートレスです。そのため、他の手段を用いた場合、リモートサーバーとクライアントが通信を行っていたものを前に知ることができません。クッキーはの一つである「他の手段。」クッキーA一般的なアプリケーションのシナリオは、サイトにログインしているユーザーを記録するために使用されます。

成功したユーザーがログインした後、次のサーバは、(通常は暗号化された)クッキーファイルを送信します。
クライアント(通常はWebブラウザ)は、受信したファイルのCookieを保存します。
クッキーを送信するために、サーバーへの次回のクライアントが接続するには、サーバはその意味を確認し、サーバーにファイル(再度ログインを避けるために)記録さリストア。
2.requestsは、クッキーを使用します

クライアントとしてブラウザがリモートサーバーに接続されている場合、リモートサーバーは、セッションIDを生成するために必要な、そしてクッキーにブラウザに添付されます。次回は、しかし限り、クッキーの接続、ブラウザおよびリモートサーバとして、このセッションIDを使用します;とブラウザが適切なクッキーを維持するために、サーバとのコラボレーション自動的になります。

リクエストには、同様に。私たちは、requests.Sessionを作成することができ、以降のセッションでは、リモート・サーバと通信するために、クッキーは、その中に発生した、要求は自動的に私たちのために良いを維持します。

  1. POSTフォーム

POSTメソッドは、フォームの形でリモート・サーバに送信されるユーザデータの集合であってもよいです。フォームの内容に応じて、リモートサーバ、対応する移動を受信した後。

POSTメソッド呼び出し要求は、Pythonの辞書データ構造パラメーターで受信することができる場合。Pythonの辞書の要求は、自動的にフォームの実際の内容としてシリアル化されます。例えば:

import requests
 
cs_url  = 'http://httpbin.org/post'
my_data  = {
  'key1' : 'value1',
  'key2' : 'value2'
}
 
r = requests.post (cs_url, data = my_data)
print r.content
  1. GitHubのをログに記録する実際のアナログトライ

シミュレーションログの最初のステップは、まず私たちは、ブラウザのログインが発生したかを把握する必要があります。

GitHubのログインページがhttps://github.com/loginです。私たちはまず、ブラウザのクッキーの記録をオフにして、Chromeでログインページを開きます。ユーザー名とパスワードを入力した後、我々は、ボタンの上に署名し、レビューツール(見つけネットワーク]タブ)のタンパーChromeとChromeの要素を開きます。

タンパークロームでは、我々はそれを見つけた:ログインページがhttps://github.com/loginですが、実際にフォームを受信するhttps://github.com/sessionですが。ログインに成功すると、その後https://github.com/家庭、リターン・ステータスコード200にジャンプします。ここに画像を挿入説明
Chromeの要素を点検し、ウィンドウでは、セッションインターフェイスに提出し、そのフォーム情報を見ることができます。内部は含まれてい

コミット
UTF8を
authenticity_token
ログイン
パスワードここに画像を挿入説明
コミット、および2 UTF8は一定で、ログイン名とパスワードはよく理解され、ユーザー名とパスワードです。一人でAuthenticity_tokenが不規則な文字の長いリストである、我々はそれが何であるかを知りません。

POSTアクションはセッションと対話するためのインターフェース、および情報のみログインインターフェースのことが可能とソースの前に発生します。私たちは、オープンソースのログインページ、authenticity_tokenは、以下のことを見つけることは難しいことではありません検索してみてください。

<input name="authenticity_token" type="hidden" value="......" />

それだけで隠されたモードによって隠された、HTMLページに書かれている、いわゆるauthenticity_tokenは理解していることが判明しました。この目的のために、我々は唯一のように、通常のPythonライブラリの分析についてを使用する必要があります

import requests
import re
 
login_url = 'https://github.com/login'
user = 'user' //具体账号
password = 'password'  //具体密码
user_headers = {
  'User-Agent' : 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36',
  'Accept' : 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
  'Accept-Encoding' : 'gzip',
  'Accept-Language' : 'zh-CN,zh;q=0.8,en;q=0.6,zh-TW;q=0.4'
}
 
session = requests.Session()
response = session.get(login_url, headers = user_headers)
pattern = re.compile(r'<input name="authenticity_token" type="hidden" value="(.*)" />')
 
authenticity_token = pattern.findall(response.content)[0]
 
login_data = {  
  'commit' : 'Sign in',  
  'utf8' : '%E2%9C%93',  
  'authenticity_token' : authenticity_token,'login' : user,  
  'password' : password
}
 
session_url = 'https://github.com/session'
response = session.post(session_url, headers = user_headers, data = login_data)
  1. まず第一に、我々は準備ができてとChrome一貫性のあるHTTPリクエストのヘッダー情報です。具体的には、ユーザエージェントの一つがより重要です。

  2. ブラウザとサーバーの通信をモデルに、我々はrequests.Sessionを作成しました。

  3. 私たちは、GETメソッドを使用してログインページを開き、そして決意は、通常のライブラリとauthenticity_tokenします。

  4. Pythonの辞書login_dataに必要なデータ、準備

  5. 最後に、POSTメソッドを使用して、フォームは、セッションインターフェイスに送信されます。

  6. 302回のジャンプによる最終的な結果は、(200)GitHubのページを開設しました。

、そして最終的に公共機関[プログラマ]の数では良い評判をお勧めする方法多くのより多くのコンテンツ、古いタイマー、スキルを学習体験、インタビューのスキル、職場体験や他のシェアを学習がたくさんある、より多くの我々は慎重に準備ゼロベース毎日、実際のプロジェクトデータの入門情報は、Pythonプログラマの技術のタイミングを説明、および方法は、細部に注意を払う必要があるいくつかの学習を共有しますここに画像を挿入説明

公開された20元の記事 ウォンの賞賛0 ビュー3607

おすすめ

転載: blog.csdn.net/chengxun02/article/details/104999037