Python爬蟲---requests庫快速上手

來源:互聯網
上載者:User

標籤:value   eth   out   iss   擷取   display   get   接受   post   

一、requests庫簡介

requests是Python的一個HTTP相關的庫

requests安裝:

pip install requests
二、GET請求
import requests   # 首先匯入reqeusts模組res = requests.get(     # 使用requests類比瀏覽器發送一個get請求    url="https://www.baidu.com",   # 指定訪問的網址)# 列印響應內容:網站的原始碼print(res.text)# 列印二進位響應內容;我們在拉取音樂、視頻等使用print(res.content)
reqeusts初體驗

我們發送get請求時,如果URL參數需要攜帶參數,那麼資料會以鍵/值對的方式置於URL中,跟在一個問號的後面,例如:ttps://www.baidu.com/s?wd=hello

import requests#get請求,攜帶參數資訊#http://httpbin.org/get?key1=value1&key2=value2payload = {‘key1‘: ‘value1‘, ‘key2‘: ‘value2‘}r = requests.get("http://httpbin.org/get", params=payload)print(r.text)
get請求url攜帶參數

你還可以將一個列表作為值傳入:

#http://httpbin.org/get?key1=value1&key2=value2&key2=value3payload = {‘key1‘: ‘value1‘, ‘key2‘: [‘value2‘, ‘value3‘]}r = requests.get("http://httpbin.org/get", params=payload)
傳輸多個值得時候三、POST請求

通常,如果你想要發送一些編碼為表單形式得資料的時候,只需要簡單的給request的data傳遞一個字典即可。你的資料在發送請求時會自動編碼為表單形式:

import requestspayload = {‘key1‘: ‘value1‘, ‘key2‘: ‘value2‘}# 類似我們的請求體中的資料r = requests.post("http://httpbin.org/post", data=payload)print(r.text)
post請求

很多時候,你想發送出去的資料並非編碼為表單形式,如果你想傳輸一個json字串,而不是一個字典,那麼資料會被直接發送過去

例如,Github API v3 接受編碼為 JSON 的 POST/PATCH 資料:

import requestsimport jsonpayload = {‘some‘: ‘data‘}url = ‘https://api.github.com/some/endpoint‘r = requests.post(url, data=json.dumps(payload))print(r.text)
post請求發送一個json字串四、requests參數總結
   :param method: 要求方法    :param url: 目標地址的URL    :param params: 請求參數:可以是字串、位元組、字典    :param data:   可以是字典、字串、位元組、檔案對象,發送的時候會在請求體中攜帶    :param json: 將json中對應的資料進行序列化成一個字串,在請求體中發送給伺服器,並且Content-Type是 {‘Content-Type‘: ‘application/json‘}    :param headers: 要求標頭資料    :param cookies: 請求攜帶的cookie    :param files: 向伺服器傳送檔案資料    :param auth: Auth tuple以啟用基本的/摘要/自訂http auth。    :param timeout: 等待伺服器回應時間,可以是浮點數    :param allow_redirects: 是否允許自動重新導向,True(預設),Flase    :param proxies: 字典映射協議到代理的URL。    :param verify: 控制我們是驗證伺服器的TLS認證,還是字串,在這種情況下,它必須是CA包的路徑才能使用。預設為“True”。    :param stream: 是否以流的形式讀取伺服器傳來的資料    :param cert: 如果是字串,則為SSL用戶端認證檔案(.pem)的路徑。如果是元組,(‘cert’,‘key’)對。
五、響應
import requestsimport jsonpayload = {‘some‘: ‘data‘}url = ‘https://api.github.com/some/endpoint‘r = requests.post(url, data=json.dumps(payload))# 擷取回應標頭print(r.headers)print(r.headers[‘Content-Type‘])  # ‘application/json‘print(r.headers.get(‘content-type‘))  # ‘application/json‘# 擷取響應cookieprint(r.cookies[‘example_cookie_name‘])print(r.cookies.get_dict())# 擷取響應體print(r.text)# 擷取響應體(二進位形式)print(r.content)# 重新導向與請求曆史print(r.url)print(r.status_code)  # 響應狀態代碼print(r.history)# json響應內容print(r.json())  # [{u‘repository‘: {u‘open_issues‘: 0, u‘url‘: ‘https://github.com/...

 

Python爬蟲---requests庫快速上手

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.