Ecrire le résultat de la requète print dans un fichier .txt

alex240 Messages postés 163 Date d'inscription   Statut Membre Dernière intervention   -  
ElementW Messages postés 4814 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
je débute en pyhthon,
comment peut on stocker la source html d'une page web (avec urlopen) dans un fichier texte:

sock = urllib.request.urlopen("http://www.flightaware.com/ressources/airport/LFPG/weather")

htmlSource = sock.read

sock.close()

comment faire pour que le code source soit écrit dans un fichier txt pour qu'après je puisse le réouvrir et sélectionné les infos qui m'intérèssent avec les balises.
A voir également:

1 réponse

ElementW Messages postés 4814 Date d'inscription   Statut Contributeur Dernière intervention   1 223
 
Salut, rien de plus simple:
import urllib

sock = urllib.urlopen("http://www.flightaware.com/ressources/airport/LFPG/weather")
htmlSource = sock.read()
sock.close()

with open("x.txt", "w+") as f:
    f.write(htmlSource)
0
alex240 Messages postés 163 Date d'inscription   Statut Membre Dernière intervention   6
 
bonjour, merci pour cette réponse rapide le seul hic:
TypeError: must be str, not bytes
je suis sur python .3.3.2 et donc j'ai du utilisé urllib.request.urlopen, ci je comprend bien la fonction write n'écrit que en string mais pas en bytes.
Y a t-il une autre solution?
0
ElementW Messages postés 4814 Date d'inscription   Statut Contributeur Dernière intervention   1 223
 
Ah désolé j'assumair Python 2.7 (même si je préfère le 3.3, c'est juste que le 2.7 est encore beaucoup utilisé)
import urllib.request

try:
    sock = urllib.request.urlopen("http://www.flightaware.com/ressources/airport/LFPG/weather")
    htmlSource = sock.read()
    sock.close()
except urllib.error.HTTPError as e:
    htmlSource = e.read()
with open("x.txt", "w+b") as f:
    f.write(htmlSource) 
Ici il faut prévoir si une erreur HTTP arrive comme la page visée est une page de 404. Et il faut préciser qu'on écrit le fichier en mode byte et pas string, le selecteur "b" dans le mode d'ouverture.
0