0

asp.net で書かれた小さなページ (POST メソッドを使用) をスクレイピングしようとしています。しかし、問題があり、サーバーが指定した URL ".../(S(XXXXXXXXX))/..." で指定されたセッション ID にアクセスできません。

これは私のコードです:

import urllib
import urllib2

headers = {
    'HTTP_USER_AGENT': 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.13) Gecko/2009073022 Firefox/3.0.13',
    'HTTP_ACCEPT': 'text/html,application/xhtml+xml,application/xml; q=0.9,*/*; q=0.8',
    'Content-Type': 'application/x-www-form-urlencoded'
}

url = 'http://mobile.trenitalia.com/W2/ViaggiaTrenoXHTML.aspx'
values = {'Text1':21324,
            '__EVENTVALIDATION':'/wEWAwLgwZLkDQLzlKGwCgK28MDdBaZpixsZK6pgmdSd5WzAhOKq22MJ',
            '__VIEWSTATE':'/wEPDwUINzkxNzIxNzFkZCx1ajW4bJv22/lexpR1EWM3e10A',
            'butt_Find':'Cerca'}

data = urllib.urlencode(values)
req = urllib2.Request(url)#, data, headers)
response = urllib2.urlopen(req)
the_page = response.read()
print the_page

URL の表示方法: http://mobile.trenitalia.com/W2/ViaggiaTrenoXHTML.aspx

セッションの痕跡がありません。サーバーから提供されたセッションにアクセスするにはどうすればよいですか?

4

1 に答える 1

0

response変数でgeturl()メソッドを呼び出して、結果の URL を取得できます。

In [13]: response.geturl()
Out[13]: 'http://mobile.trenitalia.com/(S(saaizweqpa3q5yvnd4qjytii))/W2/ViaggiaTrenoXHTML.aspx'
于 2012-11-21T09:05:15.580 に答える