Python request簡單使用

HuangZhang_123發表於2017-03-22

歡迎加入學習交流QQ群:657341423


python request模組通過模擬使用者訪問web網站,實際運用到Html的post,get的方法實現網站互動。這個需要了解Html的post,get的基礎知識。
比較常見的就是使用者登入,基本上現在的網站都是要使用者登入了才能繼續進一步訪問。
post方式
這個方法就通過post個人的帳號密碼到網站,實現登入。
以豆瓣登入為例:
首先要找到post網址
開啟網頁->按F12(找到網路(火狐為例))->隨意輸入帳號密碼->點選登入
這裡寫圖片描述
其次就是找到引數
這裡寫圖片描述
最後就是程式碼部分:

import requests
url='https://accounts.douban.com/login'
data={'source':"index_nav",'form_email':'啊啊','form_password':"dafadf",'login':"登入"}
r=request.post(url,data=data)
print (r.text)

值得注意的是,data部分引數是必需的,也有是可省略的,具體要看分析。
這個就是簡單post方式,不過這程式碼貌似不能使用,因為這個錯誤過多會有驗證碼部分。

session+cookies
對於驗證碼部分,可以用session+cookies方式實現登入,因為這個網站是會保持登入狀態的,就是說,這次登入下,退出網頁重新進入,個人帳號是還在的,不用再重新登入。
直接看程式碼
這裡寫圖片描述
其中c是個人登入後cookies,這個可以用瀏覽器開發者工具檢視即可。這裡不詳細說了。
request.get()獲得的是登入後的網址。
r.text獲得的是登入後的網址內容。
可以根據r.text和登入後的網址對比,檢測是否登入成功。

Get帶引數
通常get是獲取網站的內容,一切要有url才會獲取。比如:
這裡寫圖片描述
如果我需要查其他關鍵字的話,那麼直接修改明白就可以了

key="清楚"
URL=('https://zhidao.baidu.com/search?ct=17&pn=0&tn=ikaslist&rn=10&word=%s&fr=wwwt' %key)
request.get(URL)

這個可以修改引數,實現動態查詢。

爬取網站圖片

def dowloadPic(imageUrl,filePath):
    r = requests.get(imageUrl)
    with open(filePath, "wb") as code:
        code.write(r.content)

imageUrl:圖片網路路徑
filePath:圖片儲存本地路徑

以上post,get(帶引數),session+cookies是最為常用的用法。
更多用法可以參考官方文件:
http://docs.python-requests.org/zh_CN/latest/index.html


歡迎加入學習交流QQ群:657341423

相關文章