使用Python,我們很多時候是需要發送一個網絡請求的,這個真的是很容易很容易了,幾行代碼就能輕鬆搞定。
HTTP請求大家很常用,我們在這裡用最簡方式搞定它。
優秀的第三方庫
在這裡,我們使用requests這個第三方庫。我也向你們推薦使用這個。
Python自帶的urllib2其實也支持完整的HTTP請求功能,但是requests更強大,支持連接池、連接保持、session/cookie會話保持、支持文件上傳、大文件上傳、自動響應內容編碼、國際化的URL、POST數據自動編碼,並且還自動實現了keep-alive,等等。總而言之,各種好處說不盡,但是使用卻很簡單。
requests這個庫不光功能強大簡單易用,而且官方更新很及時,最新版本是今年2月20日發布的2.30.0,就在昨天,官方還修復了5392號BUG。
編寫代碼
GET請求:
帶參數的GET請求:
POST請求:
帶數據的POST請求:
在國內,根據業界慣例,我們的接口都是POST,處理的是JSON,所以我們很多時候是要傳一個JSON的,響應也是JSON,這個也很簡單:
最後一行,就是從解析JSON之後取出msg的值。
Session處理
我們在連續執行一些請求的時候,尤其是對一個網站做爬蟲時,是不需要每次都創建一個新的連接的,這個時候使用session是十分有必要的。
在這裡,我們把自己偽裝成了Chrome瀏覽器。
幾點注意
HTTPS請求也是直接發送,不需要做特殊處理對於同一個網站反覆要使用多次連接的,可以使用連接池requests請求時會對內容自動轉碼,不需要我們做處理最後要提醒大家的是:一定要使用官方的英文文檔,不要使用中文文檔,中文文檔是機器翻譯的,是這樣的:
不過英文確實會導致學習成本升高,大家有了網絡上的文章入門指導,再對照書本練習,十天半個月你就能成為高手。我就是這麼成長起來的。