python爬虫登录使用cookie格式
时间: 2023-12-02 16:05:10 浏览: 41
在 Python 爬虫中使用 cookie 登录,一般需要以下步骤:
1. 发送登录请求,获取登录成功后的 cookie。
2. 将 cookie 保存下来,后续请求时带上 cookie。
下面是一个示例代码,假设登录成功后返回的 cookie 存储在变量 `cookie_str` 中:
```python
import requests
# 登录请求的 URL 和参数
login_url = 'http://example.com/login'
login_data = {'username': 'your_username', 'password': 'your_password'}
# 发送登录请求
session = requests.Session()
response = session.post(login_url, data=login_data)
# 获取 cookie,转换为字典格式
cookies = requests.utils.dict_from_cookiejar(session.cookies)
# 将 cookie 转换为字符串格式,用于保存到文件或数据库中
cookie_str = '; '.join([f'{key}={value}' for key, value in cookies.items()])
# 将 cookie 保存到文件中
with open('cookie.txt', 'w') as f:
f.write(cookie_str)
# 后续请求时带上 cookie
headers = {'Cookie': cookie_str}
response = requests.get('http://example.com/some_page', headers=headers)
```
在后续的请求中,需要将 cookie 以字符串格式加入到请求头部,示例代码中使用了 `headers` 参数来设置请求头部。如果需要从文件中读取保存的 cookie,可以使用以下代码:
```python
# 从文件中读取 cookie
with open('cookie.txt', 'r') as f:
cookie_str = f.read().strip()
# 将 cookie 以字典格式加入到 session
session = requests.Session()
cookies = requests.utils.cookiejar_from_dict({cookie.split('=')[0]: cookie.split('=')[1] for cookie in cookie_str.split('; ')})
session.cookies.update(cookies)
# 后续请求时带上 cookie
headers = {'Cookie': cookie_str}
response = session.get('http://example.com/some_page', headers=headers)
```