selenium和requests怎么获取服务器的session,网上没查到能使用的
要获取服务器的 session 可以使用 requests 或 selenium,在每个请求中都需要带上之前获取的 session。
下面是使用 requests 获取 session 的代码示例:
import requests
# 创建一个 session 对象
s = requests.Session()
# 向服务器发送一次请求,获取 session
url = "http://example.com/get_session"
response = s.get(url)
# 在后续请求中带上 session
url2 = "http://example.com/use_session"
response2 = s.post(url2, data={'key': 'value'})
在这个示例中,首先创建了一个 session 对象 s,然后通过发送一个 GET 请求,从服务器获取 session。在后续的请求中,使用 session 对象的 post() 方法发送 POST 请求,并将要发送的数据作为参数传入。这样,就可以在每个请求中带上之前获取的 session。
下面是使用 selenium 获取 session 的代码示例:
from selenium import webdriver
# 打开一个浏览器窗口
driver = webdriver.Chrome()
# 打开一个网页,获取 session
url = "http://example.com/get_session"
driver.get(url)
# 在后续请求中带上 session
url2 = "http://example.com/use_session"
driver.get(url2)
在这个示例中,首先使用 selenium 打开了一个浏览器窗口,然后在窗口中打开了一个网页,并获取了 session。在后续的请求中,使用 get() 方法打开了一个新的网页,由于使用的是同一个浏览器窗口,因此会自动带上之前获取的 session。
需要注意的是,selenium 获取的 session 是基于浏览器的,因此需要启动浏览器,相比使用 requests 更加耗费资源。另外,获取 session 的具体步骤可能因实际情况而异,需要根据具体情况进行对应的修改。
不知道你这个问题是否已经解决, 如果还没有解决的话:每次写爬虫都要在响应头中获取cokies信息,然后在把获取的cokies信息加在请求头,太繁琐了;
如果有了 requests.session()对象,就可以自动处理cokies问题了;
session= requests.session() #相当于设置了 一个会话相关的容器,把所有会话相关的cookie都存放起来(自动保存cookie问题) r1=session.get('https://github.com/login/', headers={'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.90 Safari/537.36'}, ) authenticity_token=re.findall(r'name="authenticity_token".*?value="(.*?)"',r1.text,re.S)[0]
瞎驴博客:
http://www.cnblogs.com/linhaifeng/articles/7785043.html