requests基本用法

假裝這裡有個名字發表於2018-07-26

Requests is an elegant and simple HTTP library for Python, built for human beings.

requests素以簡潔、友好著稱,高度整合了python中urllib包並有很多人性化的方法可以使用,所以我們今天就來說一說requests。 就從基本用法開始

In [1]: import requests

In [2]: res = requests.get('http://www.baidu.com')

In [3]: res.status_code
Out[3]: 200

In [4]: res.reason
Out[4]: 'OK'

In [5]: type(res.text)
Out[5]: str

In [6]: res.text[:15]
Out[6]: '<!DOCTYPE html>'

In [7]: res.content[:15]
Out[7]: b'<!DOCTYPE html>'

In [8]: type(res.content)
Out[8]: bytes

In [9]: res.headers['content-type']
Out[9]: 'text/html'

In [10]: res.cookies
Out[10]: <RequestsCookieJar[Cookie(version=0, name='BDORZ', value='27315', port=None, port_specified=False, domain='.baidu.com', domain_specified=True, domain_initial_dot=True, path='/', path_specified=True, secure=False, expires=1532703485, discard=False, comment=None, comment_url=None, rest={}, rfc2109=False)]>
複製程式碼

以上方法都是requests常用的一些方法,content是以位元組的方式訪問請求響應體,對於純文字資訊text和content在解析上沒有很大的差別,但是在非純文字請求中python3會自動把請求到的資料以位元組流的形式儲存下來;還有一個res.json()方法一般是用於請求json資料的解析方法。

除了用requests外一般還會用到requests中的session長連線來請求。

In [12]: session = requests.session()

In [13]: session.get('http://www.baidu.com')
Out[13]: <Response [200]>
複製程式碼

session的方法基本和直接使用requests一樣。

還有一些附帶請求頭和使用IP代理的方法

def get_html(url):
    proxy = {
        'http': '120.25.253.234:812',
        'https' '163.125.222.244:8123'
    }
    heads = {}
    heads['User-Agent'] = 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.221 Safari/537.36 SE 2.X MetaSr 1.0'
    req = requests.get(url, headers=heads,proxies=proxy)
    html = req.text
    return html
複製程式碼

相關文章