2012-12-13 1 views
0

Je suis la récupération de données à partir d'une URL comme:Les données XML extraites d'urlopen remplacent "<" and ">" par ";"

data = urllib2.urlopen(url).read()

Cependant, je remarque qu'il n'y a pas les tags. C'était parce que le "<" et ">" ont été remplacés par ";" personnage. Tout le reste est intact. Alors :

<foo>bar</foo> est changé en ;foo;bar;/foo;

Comment puis-je résoudre ce problème et pourquoi est-ce qui se passe?

[EDIT]: J'ai découvert comment le réparer. Apparemment, il remplaçait '<' par '& lt' et '>' par '& gt'. Je suppose que les formes courtes des signes. Je ne sais toujours pas pourquoi cela se passe. Je suppose qu'il y a un bug dans le webservice/API.

+0

Quelle est la source du code XML? – Jacopofar

+0

Cela est * jamais * causé par 'urllib2'. Êtes-vous sûr à 100% que le serveur n'a pas produit ces données? –

+0

Lorsque j'ouvre l'URL dans IE ou FF, je peux voir les tags très bien. – ritratt

Répondre

0

Je viens couru ceci:

import urllib2 

    url='http://www.google.com' 
    data = urllib2.urlopen(url).read() 
    print data 

et je reçois beaucoup de < et>, y compris la dernière ligne </script></body></html>

Pouvez-vous poster quelques détails comme l'URL que vous tentez d'accéder et la valeur de data?

+0

le lien et les données sont confidentielles puisqu'elles existent à mon travail. Je vais toutefois supprimer les informations sensibles et publier les données. – ritratt

+0

Avez-vous essayé ce qui précède et récupéré la page principale de Google? Obtenez-vous '<' ou ';' '? –

+0

j'ai essayé à la maison et ça marche bien. Mais ne peut essayer au travail demain. – ritratt

Questions connexes