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

有什么想法可能是错的吗?

4

2 回答 2

0

您需要保存/加载cookiejar

于 2012-03-19T22:47:27.260 回答
0

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

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

于 2012-03-21T07:29:02.423 回答