2016-11-26 131 views
2

我嘗試使用RoboBrowser登錄AmazonMusic。 我通過使用用於Kodi的腳本來處理Mechanize,但由於我想用戶Python3,我還需要它與RoboBrowser一起使用。登錄使用Robobrowser登錄Amazon音樂

這是工作(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。 但我該怎麼做?我認爲cookie存儲在我傳遞給RoboBrowser的會話中,並且每個POST都重複使用。我也嘗試過沒有通過一個會議的開始 - 沒有任何區別...

我做錯了什麼? 我也嘗試過使用MechanicalSoup,但得到了相同的結果。

回答

0

沒有用戶代理指定

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)