美文网首页
Python requests 使用手册

Python requests 使用手册

作者: 华阳_3bcf | 来源:发表于2023-04-10 14:33 被阅读0次

Python 内置了 requests 模块,该模块主要用来发 送 HTTP 请求,requests 模块比 urllib 模块更简洁。

语法:

requests.methodname(params)

方法

Method Description
delete(url, args) Sends a DELETE request to the specified url
get(url, params, args) Sends a GET request to the specified url
head(url, args) Sends a HEAD request to the specified url
patch(url, data, args) Sends a PATCH request to the specified url
post(url, data, json, args) Sends a POST request to the specified url
put(url, data, args) Sends a PUT request to the specified url
request(method, url, args) Sends a request of the specified method to the specified url

例如

 # 导入 requests 包
import requests

url = "http://httpbin.org"
 # 发送请求
x = requests.get(url)
 
 # 返回 http 的状态码
print(x.status_code)

# 响应状态的描述
print(x.reason)

# 返回编码
print(x.apparent_encoding)

输出结果如下:

200
OK
Windows-1252

对于带参数的URL,传入一个dict作为params参数:

结果是改变 url -> url + ?key=value

>>> url = "http://httpbin.org/get" 
>>> params = { "key1": "value1", "key2": "value2"}
>>> y = requests.get(url, params = params)
>>> print(y.url)
http://httpbin.org/get?key1=value1&key2=value2

添加 headers

>>> headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'}
>>> url = 'https://www.douban.com/'
>>> r = requests.get(url, headers=headers)
>>> print(r.status_code)
200

具体的属性和方法可以参考这里:Python requests.Response Object (w3schools.com)

如果是 post:

>>> url = "http://httpbin.org/post"
>>> payload = {"name": "roy", "age": "80"}
>>> r = requests.post(url, data = payload)
>>> print(r.reason)
OK

>>> import requests
>>> r = requests.get('https://httpbin.org/basic-auth/user/pass', auth=('user', 'pass'))
>>> r.status_code
200
>>> r.headers['content-type']
'application/json'
>>> r.headers
{'Date': 'Fri, 28 Oct 2022 01:36:58 GMT', 'Content-Type': 'application/json', 'Content-Length': '47', 'Connection': 'keep-alive', 'Server': 'gunicorn/19.9.0', 'Access-Control-Allow-Origin': '*', 'Access-Control-Allow-Credentials': 'true'}
>>> r.encoding
>>> r.text
'{\n  "authenticated": true, \n  "user": "user"\n}\n'
>>> r.json()
{'authenticated': True, 'user': 'user'}
>>>

Python Requests get() Method

The get() method sends a GET request to the specified url.


Syntax

requests.get(url, params={"key": "value"}, args)

args means zero or more of the named arguments in the parameter table below. Example:

requests.get(url, timeout=2.50)

Parameter Values

Parameter Description
url Required. The url of the request
params Optional. A dictionary, list of tuples or bytes to send as a query string. Default None
allow_redirects Optional. A Boolean to enable/disable redirection. Default True (allowing redirects)
auth Optional. A tuple to enable a certain HTTP authentication. Default None
cert Optional. A String or Tuple specifying a cert file or key. Default None
cookies Optional. A dictionary of cookies to send to the specified url. Default None
headers Optional. A dictionary of HTTP headers to send to the specified url. Default None
proxies Optional. A dictionary of the protocol to the proxy url. Default None
stream Optional. A Boolean indication if the response should be immediately downloaded (False) or streamed (True). Default False
timeout Optional. A number, or a tuple, indicating how many seconds to wait for the client to make a connection and/or send a response. Default None which means the request will continue until the connection is closed
verify Optional. A Boolean or a String indication to verify the servers TLS certificate or not. Default True

Return Value

The get() method returns a requests.Response object.

Python Requests post() Method

Example

Make a POST request to a web page, and return the response text:

import requests

url = 'https://www.w3schools.com/python/demopage.php'
myobj = {'somekey': 'somevalue'}

x = requests.post(url, json = myobj)

print(x.text)

Definition and Usage

The post() method sends a POST request to the specified url.

The post() method is used when you want to send some data to the server.


Syntax

requests.post(url, data={"key": "value"}, json={"key": "value"}, args)

args means zero or more of the named arguments in the parameter table below. Example:

requests.post(url, data = myobj, timeout=2.50)

Parameter Values

Parameter Description
url Required. The url of the request
data Optional. A dictionary, list of tuples, bytes or a file object to send to the specified url
json Optional. A JSON object to send to the specified url
files Optional. A dictionary of files to send to the specified url
allow_redirects Optional. A Boolean to enable/disable redirection. Default True (allowing redirects)
auth Optional. A tuple to enable a certain HTTP authentication. Default None
cert Optional. A String or Tuple specifying a cert file or key. Default None
cookies Optional. A dictionary of cookies to send to the specified url. Default None
headers Optional. A dictionary of HTTP headers to send to the specified url. Default None
proxies Optional. A dictionary of the protocol to the proxy url. Default None
stream Optional. A Boolean indication if the response should be immediately downloaded (False) or streamed (True). Default False
timeout Optional. A number, or a tuple, indicating how many seconds to wait for the client to make a connection and/or send a response. Default None which means the request will continue until the connection is closed
verify Optional. A Boolean or a String indication to verify the servers TLS certificate or not. Default True

Return Value

A requests.Response object.

参考:

官网:Requests: HTTP for Humans™ — Requests 2.28.1 documentation

https://www.w3schools.com/python/module_requests.asp

Python requests 模块 | 菜鸟教程 (runoob.com)

requests - 廖雪峰的官方网站 (liaoxuefeng.com)

python的requests模块详解 - 马昌伟 - 博客园 (cnblogs.com)

相关文章

网友评论

      本文标题:Python requests 使用手册

      本文链接:https://www.haomeiwen.com/subject/llfwddtx.html