很多网页要求登录后,才能查看对应的信息,整个流程是:
客户端 服务器
玩家登录 返回cookie
获得cookie后继续访问其他页面 根据cookie查验身份,返回对应内容
session会话,理解为可以连续请求,先提交data换来cookie,然后可以带着cookie继续访问。比如此时想访问一个需要登录后才能展示的个人信息页面 https://example.com/profile
其实有两种方法,第一种就是session,第二种则是在网页上登录之后,将cookie放入请求中。
第一种方法:session
import requests
# 创建一个会话对象
session = requests.session()
# 使用会话对象登录(假设需要登录)
login_url = 'https://example.com/login'
login_data = {'username': 'myuser', 'password': 'mypass'}
session.post(login_url, data=login_data)
# 现在,由于我们使用了会话对象,所以后续的请求会携带前面请求中设置的cookies
# 例如,访问一个需要登录后才能展示的个人信息页面
profile_url = 'https://example.com/profile'
response = session.get(profile_url) #>>>> 用session去请求
print(response.text)
# 当你完成所有请求后,可以关闭会话(但这不是强制的,因为Python的垃圾回收机制会处理它)
session.close()
第二种方法
# 1. 在网页中完成登录
# 2. 进入想要访问的个人信息页面:https://example.com/profile
# 3. 在开发者工具中找到请求头request headers,里面有个cookie。复制下来
url = 'https://example.com/profile'
headers = {
'cookie': '复制下来的一大串东西'
}
req = requests.get(url = url, headers = headers)
# 效果一样,但是麻烦一点点
标签:profile,登录,url,爬虫,session,cookie,login
From: https://www.cnblogs.com/abloger/p/18243467