python自帶的urllib庫實現了http基本的get功能,當我們想要實現比get更多的事情時,那麼就需要去尋找支援python標準的第三方庫了。
requests庫可以成為你的選擇,它可以處理複雜的http請求,cookie,header等內容,是乙個第三方庫。
可以使用python包管理器,執行命令pip install requests
安裝requests庫。
瀏覽器的位址列讓我們可以進行get請求,而網頁上的表單則方便我們進行post請求。
利用python**模擬網頁上表單提交時,我們需要通過form標籤的action獲取到進行post請求的位址,然後找到form表單中有name屬性的輸入域,這些輸入域即是我們進行post請求需要傳遞的資料。下面是乙個提交基本表單的例子。
簡單表單提交
我們看到過網頁上最簡單的表單應該是這樣的
對於這個表單使用python模擬提交的實現**如下:
可以看到對於這樣乙個基本的表單,使用python僅僅需要四行**,非常容易。
提交檔案和影象
網路上上傳檔案是很普遍的功能,但是在資料採集時並不會常用。不過如果想為自己的**檔案上傳功能進行測試,用python寫測試指令碼還是很容易的。
上傳表單源**:
python檔案上傳測試指令碼原始碼:
提交給表單的uploadfile的值不是乙個簡單的字串,而是乙個用open函式開啟的python檔案物件。
cookie處理
**使用者在登入後,在每個頁面之間跳轉之後都是已經登入狀態,像這種回話狀態通常在客戶端用cookie實現,而如果是在後台那麼使用session實現。對於後一種方式我們可以按照正常的表單處理方式進行。大多數新式**都用cookie跟蹤使用者是否已登入的狀態資訊,一旦**驗證了你的登入權證,它就會將他們儲存在你的瀏覽器cookie中,裡面通常包含乙個伺服器生成的令牌、登入有效時限和狀態跟蹤資訊。這樣當你瀏覽其他頁面時,**會給每個頁面提供權證。
request庫提供了跟蹤cookie的功能
print("訪問下乙個頁面")
通過r.cookies可以獲取到cookies,但是這樣每次請求都需要手動獲取未必有點麻煩。requests提供了一種更便利的方式:會話物件
print("訪問下乙個頁面")
http基本接入認證
處理**登入還有一種方法就是http基本接入認證,通常這種方式用在比較早期且安全性較高的**或公司**以及一些api的使用上。
requests庫有專門的auth模組來處理http認證:
如果認證成功,那麼結果就是認證成功之後顯示的頁面,如果失敗,那麼就會拒絕接入。
帶驗證碼的表單
有的登錄檔單會帶有驗證碼,可以使用ocr庫來識別的文字內容。
python爬蟲之模擬登入
pip install requests post cid 137 pip install ddddocr基礎使用方法 print res 官方詳細用法 pip install fake useragent使用方法 from fake useragent import useragent ua us...
python爬蟲爆破web表單
coding utf 8 利用python 寫的多執行緒爆破後台使用者名稱 密碼 自備字典 比較實用,即使是在資訊保安這麼重視的今天,還是有人不加驗證碼或者異常訪問限制之類的登陸驗證方式,這樣就很容易被弱口令爆破工具拿下,本 僅限學習實用,禁止進行web攻擊,不承擔法律責任 referer refe...
python自動化之爬蟲模擬登入
from selenium import webdriver import time driver webdriver.phantomjs executable path r d phantomjs 2.1.1 windows phantomjs 2.1.1 windows bin phantomj...