1

python mechanizeを使用して、iTunesconnect上のアプリのリストを取得しようとしています。このリストが取得されると、それらのリンクを使用してさらに作業が行われます。

ログインは成功しますが、「アプリケーションの管理」リンクをたどると、ログインページにリダイレクトされます。それはまるでセッションが失われたかのようです。

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

さらなる調査の結果、これを理解しました。これは、 http://bugs.python.org/issue3924に記載されているcookielibの既知のバグが原因でした。

基本的に一部のサイト(特にitunesconnect)では、Cookieのバージョンをintではなく文字列として設定します。これは、その条件を処理しないため、cookielibでエラーを引き起こします。その問題のスレッドの下部にある修正は私のために働いた。

于 2012-03-21T07:29:02.423 に答える