2012-03-19 70 views
1

我试图使用python mechanize来检索iTunes连接上的应用程序列表。一旦检索到这个列表,将用这些链接进行进一步的工作。蟒蛇机械化会议未保存

登录成功,但随后当我按照“管理您的应用程序”链接时,我被重定向回登录页面。就好像会话丢失一样。

import mechanize 
import cookielib 
from BeautifulSoup import BeautifulSoup 
import html2text 

filename = 'itunes.html' 

br = mechanize.Browser() 
cj = cookielib.LWPCookieJar() 
br.set_cookiejar(cj) 

br.set_handle_equiv(True) 
br.set_handle_redirect(True) 
br.set_handle_referer(True) 
br.set_handle_robots(False) 

br.set_handle_refresh(mechanize._http.HTTPRefreshProcessor(), max_time=1) 

br.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1')] 

br.open('https://itunesconnect.apple.com/WebObjects/iTunesConnect.woa') 
br.select_form(name='appleConnectForm') 
br.form['theAccountName'] = username 
br.form['theAccountPW'] = password 

br.submit() 

apps_link = br.find_link(text='Manage Your Applications') 
print "Manage Your Apps link = ", apps_link 
req = br.follow_link(text='Manage Your Applications') 

for app_link in br.links(): 
    print "link is ", app_link 

任何想法可能是错的什么?

回答

0

在进一步调查后想通了这一点。这是由于在这里记录了一个已知的cookielib中的错误:http://bugs.python.org/issue3924

基本上有些网站(特别是itunesconnect),将cookie版本设置为字符串而不是int。这会导致cookielib中的错误,因为它不处理该情况。该问题线程底部的修复程序适用于我。

0

您需要​​的cookiejar

+0

何时应该保存/加载饼干罐? – Inn0vative1 2012-03-19 22:55:34

+0

您应该尽早加载它,可能会在创建后立即加载,并在程序退出时保存它 – 2012-03-19 23:00:42

+0

第一次运行加载将失败,因为该文件不存在,因此您可能需要尝试/除非该代码在该位置附近 – 2012-03-19 23:01:34