设置服务器cookie

时间:2015-04-04 17:07:47

标签: python cookies header python-requests

我正在尝试为网站设置一个cookie,但是如果我打印一个cookielist我只会获得网站设置的会话ID cookie而不是我试图设置的那个。

我试图遵循文件,但无法弄清楚它为什么不起作用。

亲切的问候, 标记

import requests
from bs4 import BeautifulSoup

s = requests.session()
cookie = {"testcookie":"testvalue"}
header = {"User-Agent":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.101 Safari/537.36)"}
s.get("http://www.example.com", cookies=cookie, headers=header)

# Get xsrf code
loginpage = s.get("https://example.com/login/", headers=header)
soup = BeautifulSoup(loginpage.text)
xsrflist = []
source=soup.findAll('input',{"value":True})
for sources in source:
    print (sources['value'])
    xsrflist.append(sources["value"])
xsrf = xsrflist[0]

# Login
payload = {"username" : "usernamel", "password" : "password1", 'anti_xsrf_token' : xsrf}
login = s.post("https://example.com/login/", data=payload, cookies=cookie, headers=header)

print(s.headers)
print (requests.utils.dict_from_cookiejar(s.cookies))

2 个答案:

答案 0 :(得分:2)

您无法设置服务器Cookie。当您向服务器发送cookie时,服务器可以执行任何操作,包括忽略它们。

答案 1 :(得分:0)

安装selenium

pip install selenium

这是解决方案。

from selenium import webdriver

driver = webdriver.Firefox()
driver.get('yoururl')
htmlpage = driver.page_source
#do something with htmlpage