pip3 install requests
requests.request(method, url, **kwargs)
requests.get(url, params=None, **kwargs)
requests.post(url, data=None, json=None, **kwargs)
requests.put(url, data=None, **kwargs)
requests.delete(url, **kwargs)
requests.head(url, **kwargs)
requests.session()
requests.get_redirect_target(response)
requests.patch(url, data=None, **kwargs)
通过response对象的各种属性和方法来查看响应的各项信息
GET和POST是HTTP协议中最常用的两种请求方法,它们在参数传递、安全性、缓存以及URL长度上有所区别。具体分析如下:
总的来说,GET请求适合用于获取数据,而POST请求适合用于提交数据。在实际开发中,选择使用哪种请求方法取决于具体的需求和场景。
import requests
url = 'https://www.baidu.com/s'
headers = {
'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36'
}
# 方式1
rep = requests.get('https://www.baidu.com/s?ie=UTF-8&wd=中国', headers=headers)
# 方式2
params = {
'ie' : 'UTF-8',
'wd' : '中国'
}
rep = requests.get(url,params=params ,headers=headers)
print(rep.text)
import requests
url = 'https://fanyi.qq.com/api/translate'
data = {
'source': 'auto',
'target': 'en',
'sourceText': '中国'
}
headers = {
'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36'
}
rep = requests.post(url, data=data, headers=headers)
print(rep.text)
import requests
url = 'https://fanyi.qq.com/api/translate'
data = {
'source': 'auto',
'target': 'en',
'sourceText': '中国'
}
headers = {
'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36'
}
rep = requests.post(url, data=data, headers=headers)
print(rep.text)
{
"translate": {
"errCode": 0,
"errMsg": "",
"source": "zh",
"target": "en",
"records": [
{
"sourceText": "中国",
"targetText": "China"
}
],
"full": true,
"options": {}
},
"dict": null,
"suggest": null,
"errCode": 0,
"errMsg": "ok"
}
Headers在HTTP请求中扮演着重要的角色,它们为服务器提供额外的信息,帮助服务器正确处理请求。例如,通过设置User-Agent可以模拟浏览器行为,避免被网站识别为爬虫并封锁。
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.82 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.9
Connection: keep-alive
Cookie: PHPSESSID=d1s5jnrl3kjhg5iuj65t54rd5
以下是一些常见的HTTP请求头字段及其含义:
表明发送请求的用户代理(通常是浏览器)的信息。服务器通过这个字段来识别客户端使用的操作系统、浏览器类型和版本等。
告诉服务器客户端能够接受哪些类型的媒体,这样服务器可以根据客户端的偏好返回相应的内容。例如,Accept: text/html 表示客户端希望接收HTML格式的响应。
当客户端需要发送数据给服务器时,这个字段指定数据的MIME类型。例如,Content-Type: application/json 表示客户端发送的是JSON格式的数据。
表示客户端能够解码哪些编码方式的数据。这通常用于指定客户端是否支持压缩编码,如Accept-Encoding: gzip。
用于存储会话信息或其他持久性数据。服务器可以通过设置Cookie来维护客户端的状态。
用于提供认证信息,如Bearer tokens或HTTP基本认证的用户名和密码。
控制是否关闭网络连接,或者是否使用持久连接。例如,Connection: keep-alive 表示使用持久连接。