【问题标题】:python-requests cookies export to seleniumpython-requests cookie 导出到 selenium
【发布时间】:2016-05-27 19:05:45
【问题描述】:

我想登录网站 whit requests 库,在将 cookie 导出到 selenium 后,我正在编写以下代码:

import requests
from selenium import webdriver

session=requests.Session()

MyHeaderss = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.32 (KHTML, like Gecko) Chrome/48.0.2564.109 Safari/537.32", "X-GWT-Permutation" : "6FEFBE57C6E73F0AB33BD5A4E17945DE", "Content-Type":"text/x-gwt-rpc; charset=utf-8"}

login_data = '''https://www.cartetitolari.mps.it/portaleTitolari/|FEAC78FFDF81D6121438D70986AF1C41|portale.titolari.client.service.PTService|login|portale.titolari.client.common.login.LoginRequest/3583069702|xxxxxxxxxxx|matteosbragia1984|'''


ra0=session.post('https://www.cartetitolari.mps.it/portaleTitolari/service', data=login_data, headers=MyHeaderss)
print ra0.content

profile = webdriver.FirefoxProfile()
profile.set_preference("general.useragent.override", "Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.32 (KHTML, like Gecko) Chrome/48.0.2564.109 Safari/537.32")

driver = webdriver.Firefox()
driver.add_cookie(session.cookies.get_dict())

driver.get("https://www.cartetitolari.mps.it/portaleTitolari/downloadeco?id=0")

当页面加载需要登录时,代码工作,但无法成功导出 selenium 中的会话/cookies!我哪里错了?

【问题讨论】:

标签: python selenium cookies python-requests


【解决方案1】:

您首先需要导航到页面以设置域,然后通过迭代 cookie jar 添加每个 cookie:

driver.get("https://www.cartetitolari.mps.it/portaleTitolari/titolari.html")

for c in session.cookies :
    driver.add_cookie({'name': c.name, 'value': c.value, 'path': c.path, 'expiry': c.expires})

【讨论】:

  • session 来自哪里?
【解决方案2】:

我遇到了类似的问题。使用开发人员窗口观察,我可以看到登录后正在发送 cookie,但随后通过 javascript 或其他方式重定向页面,然后将控制权返回给程序。因此,我无法获取该 cookie 并将其保存。

经过更多研究,我意识到该程序每次都以干净的会话开始 (this answer helped a lot),因此持久性 cookie 根本不是持久性的。需要进一步研究,但给 selenium(通过 splinter)提供一个配置文件来解决我的问题。

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("user-data-dir=" + tdir + "/chrome-session")
chrome_options.add_argument("--profile-directory=Default")
with Browser('chrome', headless=True, options=chrome_options) as browser:

【讨论】:

    猜你喜欢
    • 2016-09-26
    • 1970-01-01
    • 2018-09-07
    • 1970-01-01
    • 2012-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-09
    相关资源
    最近更新 更多