Bonjour,
J'ai voulu passer un script pour python2.7 qui fonctionne très bien en python3.
Je me heurte à des soucis d'encodage.

Après plusieurs modifications, j'arrive à cela :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
reca = soup.find( "p", {"class":"m_content_recette_ingredients"} )
ingred = str(reca)
 
method = re.compile(r'<a.*?">', re.IGNORECASE)
ingredi = re.sub(method, '', ingred)
print(type(ingredi))
ingredi_utf8 = ingredi.encode("utf-8" ).replace("<h4>", "")
et voici le message d'erreur :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<class 'str'>
Traceback (most recent call last):
 
  File "<ipython-input-6-f64baab7259c>", line 1, in <module>
    runfile('/media/marco3/Données 1,9To/Informatique/python/python-marmiton/pate-pizza-5-pyth3.py', wdir='/media/marco3/Données 1,9To/Informatique/python/python-marmiton')
 
  File "/usr/local/lib/python3.3/dist-packages/spyderlib/widgets/externalshell/sitecustomize.py", line 586, in runfile
    execfile(filename, namespace)
 
  File "/usr/local/lib/python3.3/dist-packages/spyderlib/widgets/externalshell/sitecustomize.py", line 48, in execfile
    exec(compile(open(filename, 'rb').read(), filename, 'exec'), namespace)
 
  File "/media/marco3/Données 1,9To/Informatique/python/python-marmiton/pate-pizza-5-pyth3.py", line 125, in <module>
    ingredi_utf8 = ingredi.encode("utf-8" ).replace("<h4>", "")\
 
TypeError: expected bytes, bytearray or buffer compatible object
Soit j'ai du type "byte" et cela ne m'intéresse pas car le module "re" plante, soit je n'en ai pas et python en réclame.

Si quelqu'un peut m'aiguiller...