您好,登錄后才能下訂單哦!
Python中怎么利用Requests實現網絡請求,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
場景
>>> r = requests.get('https://google.cn') # get
>>> r
<Response [200]> # HTTP 響應200
>>> r.headers['content-type'] # 網頁類型
'text/html'
>>> r.encoding # 正在使用的編碼
'ISO-8859-1
上面這個是最簡單的,不需要上面認證、服務器認證代理、請求內容、定制頭等,比如帶上請求數據,把需要的數據封裝為字典,然后用 params 帶入即可。
# 在瀏覽器訪問的網址是
# https://google.cn/get?key2=value2&key1=value1
# 用 Requests 來訪問
>>> payload = {'key1': 'value1', 'key2': 'value2'}
>>> r = requests.get('https://google.cn/get', params=payload)
對返回的內容還可以解析,有一個內置的 JSON 解碼器,不過是針對一個返回的是一個字典,如果是多個字典的話,有報錯異常提示。
>>> import requests
>>> r = requests.get('https://google.cn/events')
>>> r.json()
[{u'repository': {u'open_issues': 0, u'url': 'https://google.cn/...
如果JSON解碼失敗,則 r.json() 引發異常。例如,如果響應獲得 204(無內容),或者響應包含無效的 JSON ,則嘗試 r.json() 引發。
ValueError: No JSON object could be decoded
自定義 header 內容
>>> headers = {'user-agent': 'my-app/0.0.1'}
>>> r = requests.get(url, headers=headers)
對于 POST 的請求,則需要帶上 data
>>> payload = {'key1': 'value1', 'key2': 'value2'}
>>> r = requests.post("https://google.cn/post", data=payload)
在爬取數據的時候,有時候會遇到網站是用 cookies 來訪問的,這個時候需要認證,獲取到 cookies,然后帶上參數 cookies 即可訪問。
>>> url = 'https://google.cn/cookies'
>>> cookies = dict(cookies_are='working')
>>> r = requests.get(url, cookies=cookies)
還有一些網站反「爬」機制的,會加上多個路徑的 cookies,就可以用到
>>> jar = requests.cookies.RequestsCookieJar()
>>> jar.set('tasty_cookie', 'yum', domain='httpbin.org', path='/cookies')
>>> jar.set('gross_cookie', 'blech', domain='httpbin.org', path='/elsewhere')
>>> url = 'https://google.cn/cookies'
>>> r = requests.get(url, cookies=jar)
關于Python中怎么利用Requests實現網絡請求問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。