Bonsoir,
Ci dessous une portion de mon script.
Il fonctionne mais de façon séquentielle.
J'aimerai pouvoir paralléliser les requetes.
Sachant que le premier appel de request_curl est pour charger une page (ou plusieurs pages) qui contient des liens sur d'autres pages
ensuite dans la boucle le second request_curl fait appel à ces pages pour ensuite les analyser aussi.
La limite est pour arrêter le mécanisme lorsqu'il y a un nombre identique d'entrée par rapport au contenu déjà existant dans la base.
Il y a 2 axes à paralléliser
- la page principale
- les pages secondaires
Merci car je ne vois pas comment
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
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 public function observer($limit=13){ $ok = 1; $pageObs = 1; $cptOk = 0; while($ok && $cptOk < $limit){ $url = $this->lien_observer.$pageObs; $content = $this->request_curl($url); $resultObs=$this->extraitListeObjets($content); $nbTabObs = count($resultObs); $iObs=0; while($iObs < $nbTabObs && $cptOk < $limit){ $url2 = $this->lien_objet.$resultObs[$iObs]; $content = $this->request_curl($url2); $resultObj=$this->controlePage($content,$url2,1); if($resultObj == 0){ $cptOk++; } else if($resultObj == 1){ $cptOk=0 ; } $iObs++; flush(); ob_flush(); } if($cptOk >= $limit) $ok = 0; if($ok) $pageObs++; } }
Partager