使用Session对象保持登录状态并传递cookie
例如,假设要访问的网站需要登录,然后才能查看用户信息页面。可以使用以下代码保持登录状态:
import requests
from bs4 import BeautifulSoup
# 创建一个Session对象
session = requests.Session()
# 登录表单的数据
login_data = {
'username': 'your_username',
'password': 'your_password'
}
# 发送POST请求进行登录
login_url = 'https://example.com/login'
response = session.post(login_url, data=login_data)
# 检查登录是否成功,可以在响应中查找特定的文本或使用response.ok
if 'Welcome, your_username!' in response.text:
print('Login successful')
# 在保持会话的情况下访问需要登录的页面
profile_url = 'https://example.com/profile'
response = session.get(profile_url)
# 使用BeautifulSoup分析页面
soup = BeautifulSoup(response.text, 'html.parser')
# ...
else:
print('Login failed')
在以上代码中,使用Session对象来发送登录请求并保存cookie,以保持登录状态。然后,使用该Session对象来访问需要登录的页面,而不需要重新进行登录。最后,将页面传递给BeautifulSoup进行分析。