首先,我不确定我的解决方案是否可以正常工作,看起来应该可以,但我不是专家。
我有一段已经编写好的代码,可从Facebook提取数据,问题是最近在Facebook的登录过程中发生了一些更改,因此该代码无法正常工作。 我尝试解决它没有成功,然后发现机械化-这使一切变得更容易。
所以我想做的是从机械化代码(登录到Facebook)中获取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']
所有选项似乎都不起作用。
任何人都可以给出提示吗? 如果我的假设不正确,或者代码中的某些内容被破坏了?
谢谢!