SO J'ai un script qui tire des informations à partir d'une page Web d'événement. URL est la suivante: http://everguide.com.au/melbourne/event/2012-jul-14/colour/Impossible d'obtenir PHP pour accepter le signe POUND d'une belle soupe script Python
Ce script php appelle un script python (sa partie d'une boucle):
${"tmp" . $i} = utf8_encode (exec("python myscrape.py ${"eu" . $i}"));
Il passe une URL. Le script python est le suivant:
# -*- coding: utf-8 -*-
import sys
URL = sys.argv[1]
#$URL = 'http://everguide.com.au/melbourne/event/2012-jul-14/colour/'
import urllib2
req = urllib2.Request(URL)
response = urllib2.urlopen(req)
html = response.read()
from BeautifulSoup import BeautifulSoup
soup = BeautifulSoup(html.decode('utf-8'))
soup.prettify()
import re
for node in soup.findAll(itemprop="name"):
n = ''.join(node.findAll(text=True))
for node in soup.findAll(itemprop="url"):
v = ''.join(node.findAll(text=True))
for node in soup.findAll("div", { "class" : "time" }):
d = ''.join(node.findAll(text=True))
for node in soup.findAll("a", { "id" : "ctl00_holderBody_ctl00_lnkCat" }):
c = ''.join(node.findAll(text=True))
vu = v
vu.encode('utf-8', 'xmlcharrefreplace')
re.escape(vu)
print n,"|", d,"|", vu,"|", c
Ce qui fonctionne vraiment bien, mais seulement retourne à la ou le tuyau avant VU - il ne peut pas aller passé!
L'encodage UTF-8 est défini sur tous les fichiers, HTML et php.
Lorsqu'il y a un caractère spécial dans la variable V, il se casse et s'arrête. S'il n'y a pas de caractères spéciaux, cela fonctionne parfaitement.
sortie prévue est:
Colour | 14 July @ 7:30PM | 1000 £ Bend | Clubs & Parties
Ce ouutput peut être vu lors de l'exécution du script sur le serveur (avec la même commande python) mais sur PHP - je ne peux pas obtenir la chaîne de retour en lieu!
S'il vous plaît aider
Rick
Avez-vous essayé d'ajouter htmlspecialchars aux variables? – Peon
Merci Danis - en plus de la réponse de Maria qui a réglé le problème. Merci beaucoup pour votre aide! – itsricky