Сессия Python Mechanize не сохранена - PullRequest
1 голос
/ 20 марта 2012

Я пытаюсь использовать python mechanize для получения списка приложений в iTunes connect.Как только этот список будет получен, с этими ссылками будет проделана дальнейшая работа.

Вход в систему успешен, но затем, когда я перехожу по ссылке «Управление вашими приложениями», меня перенаправляют обратно на страницу входа.Это как если сеанс теряется.

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 голосов
/ 21 марта 2012

Понял это после дальнейшего расследования. Это произошло из-за известной ошибки в cookielib, задокументированной здесь: http://bugs.python.org/issue3924

В основном некоторые сайты (особенно itunesconnect) устанавливают версию cookie в виде строки, а не int. Что вызывает ошибку в cookielib, так как он не имеет дело с этим условием. Исправление в нижней части этой темы работало для меня.

0 голосов
/ 20 марта 2012

Вам нужно сохранить / загрузить cookiejar

...