我尝试使用RoboBrowser登录AmazonMusic。我通过使用一个专为Kodi编写的脚本让它与RoboBrowser一起工作,但是因为我想使用Python3,所以我也需要它来与Mechanize一起工作。
这是有效的(Python 2):
br = mechanize.Browser()
br.set_cookiejar(cj)
br.set_handle_gzip(True)
br.set_handle_robots(False)
br.addheaders = [('User-Agent', userAgent)]
br.open(urlMain + "/gp/dmusic/marketing/CloudPlayerLaunchPage/ref=dm_dp_mcn_cp")
br.select_form(name="signIn")
br["email"] = email
br["password"] = password
br.addheaders = [
('Accept', 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8'),
('Accept-Encoding', 'gzip, deflate'),
('Accept-Language', 'de,en-US;q=0.8,en;q=0.6'),
('Cache-Control', 'max-age=0'),
('Connection', 'keep-alive'),
('Content-Type', 'application/x-www-form-urlencoded'),
('User-Agent', userAgent),
('Upgrade-Insecure-Requests', '1')]
br.submit()
resp = br.response().read()
这是我为Python 3编写的代码:
import robobrowser
from requests import Session
session = Session()
browser = robobrowser.RoboBrowser(session=session, history=True)
browser.open("http://www.amazon.de/gp/dmusic/marketing/CloudPlayerLaunchPage/ref=dm_dp_mcn_cp")
loginForm = browser.get_form(id='ap_signin_form')
loginForm['email'] = "a"
loginForm['password'] = "b"
browser.submit_form(loginForm)
#print(browser.parsed)
问题是我得到的答案是,我需要接受cookie。但是我该怎么做呢?我认为cookies存储在我传递给RoboBrowser的会话中,并在每次发布时重用。我也试过了,一开始没有传递会话--没有任何区别……
我做错了什么?我也尝试了MechanicalSoup,但得到了同样的结果。
发布于 2017-05-27 22:30:40
未指定用户代理
user_agent = 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0'
browser = robobrowser.RoboBrowser(session=session, user_agent=user_agent, history=True)https://stackoverflow.com/questions/40820594
复制相似问题