Seite 1 von 1

Request per Urllib2 mit individuellem Header?

Verfasst: Samstag 1. März 2008, 12:25
von snakeseven
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

Verfasst: Freitag 18. April 2008, 06:28
von snakeseven
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

Verfasst: Freitag 18. April 2008, 10:01
von BlackJack
Das ist ein netter Hinweis an den Server welche Sprachen man bevorzugt, kein "Befehl". Und Myspace scheint die Bitte egal zu sein.