python机械化会话未保存

时间:2012-03-19 22:25:35

标签: python session mechanize itunesconnect mechanize-python

我正在尝试使用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

任何想法可能出错?

2 个答案:

答案 0 :(得分:0)

你需要save/load cookiejar

答案 1 :(得分:0)

经过进一步调查后发现了这一点。这是由于此处记录的cookielib中的已知错误:http://bugs.python.org/issue3924

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