Request per Urllib2 mit individuellem Header?

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

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
snakeseven
User
Beiträge: 408
Registriert: Freitag 7. Oktober 2005, 14:37
Wohnort: Berlin
Kontaktdaten:

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

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