Request per Urllib2 mit individuellem Header?

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Benutzeravatar
snakeseven
User
Beiträge: 405
Registriert: Freitag 7. Oktober 2005, 14:37
Wohnort: Berlin
Kontaktdaten:

Request per Urllib2 mit individuellem Header?

Beitragvon snakeseven » Samstag 1. März 2008, 12:25

Moin,
ich möchte die Ländernamen/Codes eines Musikportals auslesen und zwar in allen verfügbaren Sprachen. Wenn ich die Seite per Urllib2 anfordere, bekomme ich immer die Englischen Listen. Ich möchte die LCs aber auch in anderen Sprachen haben und ändere dazu im HTTP-Header den Language-Code. Bringt aber nix. Es werden nach wie vor die Englischen Ländernamen geschickt. Geht das überhaupt, was ich will?

Hier meine Testroutine:

Code: Alles auswählen

import urllib2

url = 'http://topartists.myspace.com/index.cfm?fuseaction=music.topBands'

txdata = None
txheaders = {   
    'User-Agent': 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)',
    'Accept-Language': 'de',
    'Accept-Encoding': '',                                       
    'Keep-Alive': '300',
    'Connection': 'keep-alive',
    'Cache-Control': 'max-age=0',
}
req = urllib2.Request(url, txdata, txheaders)
u = urllib2.urlopen(req)
data = u.read()

pos1 = data.find('</option><option value="AF">')
if pos1 > 0:
    pos2 = data.find('</select></td>',pos1)
    wholestring = data[pos1 : pos2]
    wholestring = wholestring.replace('</option><option value=','%')
    wholestring = wholestring.replace('selected>','')
    wholestring = wholestring.replace('</option>','')
    ws = wholestring.split('%')
    for n in ws:
        print n

Gruß,
Seven
Benutzeravatar
snakeseven
User
Beiträge: 405
Registriert: Freitag 7. Oktober 2005, 14:37
Wohnort: Berlin
Kontaktdaten:

Beitragvon snakeseven » Freitag 18. April 2008, 06:28

Der Host machts. Den Sinn und Zweck von "Accept-Language" verstehe ich dann aber nicht.

Code: Alles auswählen

import urllib2

url = 'http://topartists.myspace.com/index.cfm?fuseaction=music.topBands'

txdata = None
txheaders = {   
    'User-Agent': 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)',
    'Accept-Language': 'de',
    'Accept-Encoding': 'utf-8',                                       
    'Keep-Alive': '300',
    'Host':'ru.myspace.com'
    'Connection': 'keep-alive',
    'Cache-Control': 'max-age=0',
}
req = urllib2.Request(url, txdata, txheaders)
u = urllib2.urlopen(req)
data = u.read()

pos1 = data.find('</option><option value="AF">')
if pos1 > 0:
    pos2 = data.find('</select></td>',pos1)
    wholestring = data[pos1 : pos2]
    wholestring = wholestring.replace('</option><option value=','%')
    wholestring = wholestring.replace('selected>','')
    wholestring = wholestring.replace('</option>','')
    ws = wholestring.split('%')
    for n in ws:
        print n
BlackJack

Beitragvon BlackJack » Freitag 18. April 2008, 10:01

Das ist ein netter Hinweis an den Server welche Sprachen man bevorzugt, kein "Befehl". Und Myspace scheint die Bitte egal zu sein.

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder