Python 爬虫模拟登录方法汇总
import requests
from bs4 import BeautifulSoup
# 登录函数,使用session对象来保持会话状态
def login(username, password, login_url, headers):
session = requests.session()
response = session.get(login_url, headers=headers)
soup = BeautifulSoup(response.text, 'html.parser')
authenticity_token = soup.find(name='input', attrs={'name': 'authenticity_token'})['value']
login_data = {
'authenticity_token': authenticity_token,
'user[email]': username,
'user[password]': password,
'commit': 'Log in',
}
response = session.post(login_url, headers=headers, data=login_data)
return session
# 使用示例
if __name__ == '__main__':
username = 'your_username'
password = 'your_password'
login_url = 'https://example.com/login'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3',
# 其他需要的headers
}
session = login(username, password, login_url, headers)
# 使用session进行后续的网络请求操作
# 例如: response = session.get('https://example.com/protected_page')
这个代码示例展示了如何使用Python的requests库和BeautifulSoup库来登录一个网站。首先,我们定义了一个login函数,它接受用户名、密码、登录URL和请求头作为参数。在登录过程中,它会抓取登录页面上的authenticity\_token,然后构造登录数据并发起POST请求进行登录。最后,它返回一个保持了登录状态的session对象。在使用示例中,我们创建了一个session对象,并使用它来访问受保护的页面。
评论已关闭