python爬虫教程:requests模块用法

requests 是 Python 中一个非常流行的第三方 HTTP 请求库,其提供了便捷的 HTTP 请求方式和丰富的高级功能。接下来,我将从基础使用、请求结构、请求方法、自定义请求头、请求参数、会话和 Session、代理、SSL 验证、文件上传、重定向等方面深入介绍 requests 模块的使用。

1. 基础使用:

import requests

response = requests.get('https://www.baidu.com')
print(response.content)  # 打印出请求返回的结果
print(response.status_code)  # 打印出请求的状态码

2. 请求结构:

requests 的请求结构由 Request 和 Response 两个类构成,其中 Request 表示请求信息,Response 表示响应信息。

import requests
url = 'http://www.example.com'
headers = {'User-Agent':'Mozilla/5.0'}
req = requests.Request('GET',url,headers=headers)
prepped = req.prepare()
res = requests.Session().send(prepped)
print(res.text)

3. 请求方法:

requests 支持多种请求方法,包括 GET、POST、PUT、DELETE、HEAD、OPTIONS 等。

import requests
# 发送 GET 请求
response = requests.get('https://api.github.com')
# 发送 POST 请求
response = requests.post('https://httpbin.org/post', data={'key': 'value'})

4. 自定义请求头:

可以使用 headers 参数来设置请求头信息。

import requests

headers = {'User-Agent': 'Mozilla/5.0'}
response = requests.get('https://www.baidu.com', headers=headers)

5. 请求参数:

可以使用 params 参数来设置请求参数信息。

import requests

payload = {'key1': 'value1', 'key2': 'value2'}
response = requests.get('https://www.baidu.com', params=payload)

6. 会话和 Session:

在 requests 中使用会话和 Session 可以实现更高效的请求操作,可以在多个请求之间共享 Cookie、缓存、身份验证等信息。

import requests

s = requests.Session()
s.get('http://httpbin.org/cookies/set/sessioncookie/123456789')
response = s.get('http://httpbin.org/cookies')
print(response.text)

7. 代理:

可以使用 proxies 参数来设置代理信息。

import requests

proxies = {'http': 'http://10.10.1.10:3128', 'https': 'http://10.10.1.10:1080'}
response = requests.get('https://www.baidu.com', proxies=proxies)

8. SSL 验证:

可以使用 verify 参数来验证 SSL 证书信息。

import requests

response = requests.get('https://www.baidu.com', verify='/path/to/certfile')

9. 文件上传:

可以使用 files 参数来上传文件。

import requests
#Python小白学习交流群:711312441
url = 'http://httpbin.org/post'
files = {'file': open('test.txt', 'rb')}
response = requests.post(url, files=files)

10. 重定向:

使用 allow_redirects 参数来开启或关闭重定向功能。

import requests

response = requests.get('http://github.com', allow_redirects=False)

以上就是 requests 模块的由浅入深的介绍。requests 的优点在于其简洁的 API 接口和丰富的高级功能,可以帮助我们轻松地完成 HTTP 请求操作。

你可能感兴趣的:(python,爬虫,开发语言)