ホームページ >バックエンド開発 >Python チュートリアル >Python での POST/GET パッケージの構築とランダムな文字列の生成

Python での POST/GET パッケージの構築とランダムな文字列の生成

高洛峰
高洛峰オリジナル
2016-10-18 11:22:311123ブラウズ

それでは、Python を使用して GET パッケージと POST パッケージを作成してみましょう。

その有用性については、誰もが徐々に理解するでしょう。

Python には多数のライブラリが含まれており、新興言語として、HTTP を十分に強力にサポートしています。

ここで、新しいライブラリ httplib と urllib を紹介します

これら 2 つのライブラリの名前に基づいて、それらが HTTP と URL で動作することがわかります。

まず、サーバーとの接続を確立する必要があります。 (以下では、ある Weibo を例としてさまざまな機能を実装します)

conn = httplib.HTTPConnection("ti50*****com");

エラー プロンプトがない限り、次のように接続が成功すると、データ パケットを送信できます。

上記では GET パッケージの構造について説明しましたが、HEARDER 部分のみです。 httplib では、heaer は辞書を通じて保存されます。以下で定義しましょう:

headers = {"Content-Type": "application/x-www-form-urlencoded",

"Accept": "text/html,application/xhtml+xml,application/xml; q =0.9,*/*;q=0.8",

"リファラー": "http://ti50.*****com/g/s?sid=************ **** **********",

"Accept-Encoding": "",

"Accept-Language": "zh-CN,zh;q=0.8",

" Accept-Charset" : "GBK,utf-8;q=0.7,*;q=0.3",

"Cookie": Cookie }

Accept-Encoding そのコンテンツを削除しました。つまり、サーバーにとって、クライアントにとっては圧縮形式を受け入れることができない場合、データ パケットは元のデータとともに送り返されるため、解凍プロセスを省略して Web ページを直接分析できますが、その結果、トラフィックが増大し、ネットワークのリアルタイム パフォーマンスが低下します。当然のことながら、特に解凍を処理するライブラリは他にもあります。

その後、直接お送りすることができます。

conn.request(method="GET",url='''http://ti50****com/g/s?************_TK9EH&r=''' + go_num + ' ''&aid=amsg&bid=******=true&ifh=1&ngpd=false''',headers=headers);

method フィールドは、送信されるデータ パケットのタイプを示します。

url フィールドは文字列形式でアドレスを定義します。

header フィールドはヘッダーを定義します。

一般的に言えば、データパケットがサーバーに送信されると、サーバーはそれに応じて応答パケットを返します。この応答パケットは多くの場合に役立ちます。応答パケットを取得するには次のコマンドを使用します。

response = conn.getresponse();

上記のステートメントのかっこでは、応答パケットの最初の文字が何文字読み取られるかを示します。

POSTパッケージとGETパッケージの作成プロセスは基本的に同じです。

BODYを新たに定義する必要があるだけで、この部分は文字列として定義できます。

params = 'msg=******************************'

サーバーの前にまだ接続する必要があります。

conn = httplib.HTTPConnection("ti50*****com");

Send

conn.request(method="POST",url='''/g/s?sid=****) ****************&ngpd=false''',body=params,headers=headers);

上記の式と形式の間にはわずかな違いがあることがわかりますGET パケットの送信について。

方法が変更されました。

URLにドメイン名が書かれていません。

追加の本文フィールドが追加されます。

2 番目の方法が考えられます。ドメイン名が定義されていない場合、システムはサーバーとの最近の接続に使用されたドメイン名を置き換えます。

応答パケットの取得方法はGETパケットと同様です。

乱雑な小さなアプリ。

(1) ランダムな文字列の生成。

POST を使用して興味深いことを行うと、サーバー検証の問題が頻繁に発生します。そのような状況に対処するためにランダムな文字列を使用できることがあります。

Pythonの乱数用ライブラリ...ランダム。

簡単なアプリケーションに非常に便利です。たとえば、a と b の間のランダムな整数を生成します。

random.randint(a,b)

>>>random.randint(10,20)

>>> 15

このステップを知っていれば、ランダムな文字列プログラムを簡単に書くことができます

from random import Random
def random_str(randomlength):
    str = ''
    chars = 'AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz0123456789'
    length = len(chars) - 1
    random = Random()
    for i in range(randomlength):
        str+=chars[random.randint(0, length)]
    return str

どうやらこれは関数を呼び出すには、ランダムな文字列の長さを指定する必要があります。

もちろん、chars 内の文字を変更することで、ランダムな文字列内の文字を定義することもできます。

(2) プログラムの実行時間

プログラム時間を計算するための非常に不正確な方法を説明します

うろ覚え


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