Bonjour,
Actuellement, j'utilise le programme Phantomjs, afin de récupérer des pages web, et les enregistrer.
Je possède un fichier id.txt qui contient l'id de toutes les pages que je souhaite récupérer et enregistrer.
Les informations dans le fichier id.txt sont de cette forme :
L'idée est donc de parcourir le fichier id.txt, et pour chaque ligne :nomDeLaPage-id
nomDeLaPage2-id2
nomDeLaPage3-id3
....
- Récupérer l’identifiant
- Ouvrir et enregistrer la page
Voici le code :
Le problème c'est que l'ouverture et l'écriture de la page se fait dans une fonction asynchrone (si j'ai bien compris).
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
17
18
19
20
21 var page = require('webpage').create(); var fs = require('fs'); var file_h = fs.open('id.txt', 'r'); // contains data like : myName-1111 var line = file_h.readLine(); while(line) { data = line.split("-"); line = file_h.readLine(); savePage(data[1]); } function savePage(id){ page.open('http://www.myWebsite.com/'+id, function(){ page.evaluate(); fs.write("page/"+id+'.html', page.content, 'w'); }); } file_h.close(); phantom.exit();
J'aimerais donc pouvoir arrêter la boucle while tant que la page que je suis en train de récupérer, n'a pas été complètement récupérée et correctement enregistrée.
Merci d'avance pour vos propositions !
Partager