Bonjour à tous !

Après pas mal de recherches sur le ouaib je suis bloqué sur un problème d’interaction php/python.

Mon application a pour but de compiler des informations sur différents site web via un script python exécutant une instance de Selenium et de les afficher via une interface web en php/mysql.

La partie python fonctionne bien lorsque je la lance depuis une fenêtre de commande windows, j'utilise le driver web chromedriver, qui s'affiche bien, parcoure les pages voulues, puis se ferme, le reste du script python s'occupe de compiler tout ça dans un fichier csv.

J'aimerais pouvoir lancer ce script depuis php avec des paramètres variables. Et c'est là que ça se complique !

Voici le code php qui appelle le script python avec la commande exec() :
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
{
		// on récupère l'url de recherche
		$req = $bdd->prepare("SELECT search_url FROM recherches WHERE search_id = :id");
		$req->bindValue('id',$_GET['searchid'],PDO::PARAM_INT);
		$req->execute();
		$url = sqlFetchResult($req)[0];
 
		$commande_script = 'python C:\wamp64\www\dashscraper\python\processRecherche.py ' . $_GET['searchid'] . ' "' . $url .'"';
 
		exec($commande_script, $variable);
 
		foreach ($variable as $clef => $valeur )
		{
			echo $valeur."<br>";
		}
		//header('Location: mesrecherches.php');
		exit();
	}
voici le début du script python en question :
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
import sys
import processAnnonce
import csv
 
 
import os
from datetime import date
from selenium import webdriver
 
######################## début du programme ####################
print "$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"
print "$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"
print "Go !"
 
 
#variables
listePage = []
listeLien = []
 
listDicoAnnonce = []
 
folderData = "./data/"
 
# date du jour
ojd = date.today().strftime('%d/%m/%Y')
 
searchId = sys.argv[1]
searchUrl = sys.argv[2]
 
print("Lancement WebDriver")
navigateur = webdriver.Chrome()  # Definit le driver qui va etre utlisé
print("WebDriver lancé")
listDicoAnnonce = processRecherche(searchId, searchUrl)
navigateur.quit() #ferme le navigateur
j'utilise $variable pour obtenir le retour du script qui m'affiche :
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
Go !
Lancement WebDriver
Ce qui prouve bien que le script se lance bien, mais il semble s'interrompre au moment du lancement de l'instance du driver chrome pour Selenium (qui ne s'affiche d'ailleurs pas à l'écran) vu que "WebDriver lancé" ne s'affiche pas.

Pour l'instant je fais tourner tout ça sur mon W10 en local même si à terme je souhaite mettre tout ça sur un raspbian.

Auriez-vous une petite idée de comment faire tourner ce script ???

Merci d'avance !