将Cookie从机械化复制到请求

问题描述

首先,我不确定我的解决方案是否可以正常工作,看起来应该可以,但我不是专家。

我有一段已经编写好的代码,可从Facebook提取数据,问题是最近在Facebook的登录过程中发生了一些更改,因此该代码无法正常工作。 我尝试解决它没有成功,然后发现机械化-这使一切变得更容易。

所以我想做的是从机械化代码登录到Facebook)中获取cookie,并将其复制到我已经编写的使用请求的会话中。

所以我的第一个问题是:

  • 是否可以?我的假设(复制cookie就像我通过会话登录一样)是否正确?

我有以下一段代码,我看不出它为什么不起作用的任何原因,但是它没有...

        browser = mechanize.browser()
        browser.set_handle_robots(False)
        cookies = mechanize.CookieJar()
        browser.set_cookiejar(cookies)
        browser.addheaders = [('User-agent','Mozilla/5.0 (iPhone; cpu iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML,like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1')]
        browser.set_handle_refresh(False)

        url = self.base_url
        browser.open(url)
        browser.select_form(nr=0)  # This is login-password form -> nr = number = 0
        browser.form['email'] = email
        browser.form['pass'] = password
        browser.submit()
        cookies = browser._ua_handlers['_cookies'].cookiejar

        cookie_jar = RequestsCookieJar()
        for cookie in cookies:
            cookie_jar.set_cookie(cookie)

        self.session.cookies = cookie_jar

我还尝试了直接复制cookie(不创建RequestsCookieJar())

self.session.cookies = browser.cookies

以及间接方式:

self.session.cookies = browser._ua_handlers['_cookies']

所有选项似乎都不起作用。

任何人都可以给出提示吗? 如果我的假设不正确,或者代码中的某些内容被破坏了?

谢谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...