Python 中的POST/GET套件建置以及隨機字串的生成
現在,我們來用Python,創建GET套件和POST套件。
至於有什麼用處,大家慢慢體會。
Python 中包含了大量的函式庫,作為一門新興的語言,Python 對HTTP有足夠強大的支援。
現在,我們引入新的庫 httplib 以及 urllib
這兩個庫根據名稱,我們可以知道他們是對於HTTP以及URL的操作。
首先我們要與伺服器建立連線。 (我們以某微博作為範例實現下文的各種功能)
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",
"Referer": "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 我們刪除了其內容,這對伺服器來說我們客戶端不能接受任何壓縮的格式,資料包將用原始資料發送回來,這樣我們就可以省去解壓縮的過程直接分析網頁了,但是這樣做的後果是流量大,網路實時性差。關於解壓縮自然有別的函式庫來專門處理。
然後我們可以直接發送了。
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");
寄
conn.request(method="POST",url='''/g/s?sid=**** **************&ngpd=false''',body=params,headers=headers);
可以發現上面的這個公式和發送GET包的格式略有差距。
method 改變了。
url 裡面沒有寫網域。
多了一個body 欄位。
其中第二條可以想到,如果沒定義域名,則係統將最近一次與伺服器的連接用的域名進行替換。
取得應答包的方式與GET包相同。
亂七八糟的小應用。
(一) 隨機字串的產生。
當我們用POST做一些很有趣的事情時,常常會遇到伺服器驗證神馬的,有時候我們可以用隨機字串來處理這樣的情況。
python 中給了隨機數的函式庫… random。
對於簡單的應用非常方便。例如我們產生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中的字元來定義隨機字串中的字元。
(二) 程式運行時間
我們現在給一個非常不精確的程式時間計算方法,
from time import clock as now start = now() finish = now() run_time = finish - start print run_time

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

PHP主要是過程式編程,但也支持面向對象編程(OOP);Python支持多種範式,包括OOP、函數式和過程式編程。 PHP適合web開發,Python適用於多種應用,如數據分析和機器學習。

PHP適合網頁開發和快速原型開發,Python適用於數據科學和機器學習。 1.PHP用於動態網頁開發,語法簡單,適合快速開發。 2.Python語法簡潔,適用於多領域,庫生態系統強大。

在 Sublime Text 中運行 Python 代碼,需先安裝 Python 插件,再創建 .py 文件並編寫代碼,最後按 Ctrl B 運行代碼,輸出會在控制台中顯示。

Python更適合初學者,學習曲線平緩,語法簡潔;JavaScript適合前端開發,學習曲線較陡,語法靈活。 1.Python語法直觀,適用於數據科學和後端開發。 2.JavaScript靈活,廣泛用於前端和服務器端編程。

PHP起源於1994年,由RasmusLerdorf開發,最初用於跟踪網站訪問者,逐漸演變為服務器端腳本語言,廣泛應用於網頁開發。 Python由GuidovanRossum於1980年代末開發,1991年首次發布,強調代碼可讀性和簡潔性,適用於科學計算、數據分析等領域。

Golang在性能和可擴展性方面優於Python。 1)Golang的編譯型特性和高效並發模型使其在高並發場景下表現出色。 2)Python作為解釋型語言,執行速度較慢,但通過工具如Cython可優化性能。

在 Visual Studio Code(VSCode)中編寫代碼簡單易行,只需安裝 VSCode、創建項目、選擇語言、創建文件、編寫代碼、保存並運行即可。 VSCode 的優點包括跨平台、免費開源、強大功能、擴展豐富,以及輕量快速。

在 Notepad 中運行 Python 代碼需要安裝 Python 可執行文件和 NppExec 插件。安裝 Python 並為其添加 PATH 後,在 NppExec 插件中配置命令為“python”、參數為“{CURRENT_DIRECTORY}{FILE_NAME}”,即可在 Notepad 中通過快捷鍵“F6”運行 Python 代碼。
