ich versuche mich gerade an meinem ersten "richtigen" Python-Script. Es geht darum, von einer passwortgeschützten (keine HTTP-Authentifizierung) Seite ein PDF herunterzuladen. Dazu logge ich mich mit meinem Browser ein (Cookies deaktiviert) und hole mir die Session ID aus der URL... diese kopiere ich dann in mein Script. Obwohl die Authentifizierung ausschließlich mit der SID zusammenhängt, kriegt mein Script immer nur eine Login-Seite, während der Browser das PDF downloaden kann.
Mein Code:
Code: Alles auswählen
sid='479205305718508197'
from urlgrabber.grabber import URLGrabber
grabber = URLGrabber()
for i in range(1,5):
user_agent = 'Opera/9.10 (Windows NT 5.1; U; en)'
proxies = {'http' : 'http://localhost:8080'}
http_headers = (('Accept', 'text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1'), ('Accept-Charset', 'iso-8859-1, utf-8, utf-16, *;q=0.1'), ('Accept-Encoding', 'deflate, gzip, x-gzip, identity, *;q=0'), ('TE', 'deflate, gzip, chunked, identity, trailers'))
url = 'http://www.stol.it/dolomiten/news/pdf_page.asp?SID=%s&y=2007&m=01&d=12&f=01&ext=.pdf' % (sid)
data = grabber.urlread(url, proxies=proxies, http_headers=http_headers, user_agent=user_agent)
f = file('dateiname.pdf', 'w')
f.write(data)
f.close()
Anfrage Webbrowser (Opera) + Antwort
Code: Alles auswählen
GET /dolomiten/news/pdf_page.asp?SID=479205305718508197&y=2007&m=01&d=12&f=01&ext=.pdf HTTP/1.1
User-Agent: Opera/9.10 (Windows NT 5.1; U; de)
Host: www.stol.it
Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
Accept-Language: de-DE,de;q=0.9,en;q=0.8
Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1
Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0
TE: deflate, gzip, chunked, identity, trailers
Connection: keep-alive
HTTP/1.1 200 OK
Server: Microsoft-IIS/5.0
Date: Fri, 12 Jan 2007 21:33:23 GMT
Connection: close
Content-Type: application/pdf
Set-Cookie: ASPSESSIONIDSQCASSDA=PMKLGJPBBJINGLKGOIGCNPGI; path=/
Cache-control: private
Code: Alles auswählen
GET /dolomiten/news/pdf_page.asp?SID=479205305718508197&y=2007&m=01&d=12&f=01&ext=.pdf HTTP/1.1
Host: www.stol.it
Accept-Encoding: identity
Accept-encoding: deflate, gzip, x-gzip, identity, *;q=0
Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
User-agent: Opera/9.10 (Windows NT 5.1; U; en)
Accept-charset: iso-8859-1, utf-8, utf-16, *;q=0.1
Te: deflate, gzip, chunked, identity, trailers
Connection: keep-alive
HTTP/1.1 200 OK
Server: Microsoft-IIS/5.0
Date: Fri, 12 Jan 2007 21:35:00 GMT
Content-Length: 23547
Content-Type: text/html
Set-Cookie: ASPSESSIONIDSQCASSDA=EBLLGJPBGDHDMCFCILMBLMPN; path=/
Cache-control: private
Vielen Dank,
Andreas