Bonjour a tous
j'ai un problème.
Je possede un logiciel de video surveillance qui me donne des infos viens des requetes API en HTTP avec réponse en XML ou Texte au choix
J'arrive a lancer les requete depuis un scrypt Python et a enregistrer les resutats mais apres je bloque.
L'idée serait de n'avoir qu'un seul XML de toutes ces requetes voir un csv
et pour la derniere requete screenshot, incrémenter le "Camera=0001" par les valeurs du xml
Voici mon script
Exemple de XML Requete 4
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56 import requests from bs4 import BeautifulSoup #Recupération HLCK url = "http://localhost:8601/interface/Server/GetMachineCode?ResponseFormat=XML&AuthUser=admin" filename = 'HLCK.xml' r = requests.get(url,) if r.status_code == 200: with open(filename, 'wb') as f: f.write(r.content) #Récupération Info Serveur url = "http://localhost:8601/interface/Server/GetInfo?ResponseFormat=XML&AuthUser=admin" filename = 'Data_Serveur.xml' r = requests.get(url,) if r.status_code == 200: with open(filename, 'wb') as f: f.write(r.content) soup = BeautifulSoup(r) for Name in soup.find-all('Name'): print (Name) #Recuperation Status Caméras url = "http://localhost:8601/interface/Cameras/GetStatus?ResponseFormat=XML&AuthUser=admin" filename = 'Status.xml' r = requests.get(url,) if r.status_code == 200: with open(filename, 'wb') as f: f.write(r.content) #Recupération du Listing Caméra url = "http://localhost:8601/interface/Cameras/GetCameras?ResponseFormat=XML&AuthUser=admin" filename = 'Resume_Cam.xml' r = requests.get(url,) if r.status_code == 200: with open(filename, 'wb') as f: f.write(r.content) #Recuperation des Screenshot url = "http://localhost:8601/Interface/Cameras/GetSnapshot?Camera=0001&Profile=Visualization&ResponseFormat=XML&AuthUser=admin" filename = 'Cm.png' r = requests.get(url,) if r.status_code == 200: with open(filename, 'wb') as f: f.write(r.content)Exemple XML Requete 1
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90 <?xml version="1.0" encoding="UTF-8"?> -<Response> <Code>0</Code> <Message>OK</Message> -<Data> -<Cameras> <Count>3</Count> -<Camera> <Name>0001</Name> <Description>Arriere Maison</Description> <Model>Uniview IPC-3232ER-DV</Model> <DeviceType>1</DeviceType> <ConnectionAddress>192.168.137.39</ConnectionAddress> <ConnectionPort>80</ConnectionPort> <Latitude>0.000000</Latitude> <Longitude>0.000000</Longitude> <MediaProfiles>Enregistrement,Lr,Visualisation</MediaProfiles> </Camera> -<Camera> <Name>0002</Name> <Description>Portail</Description> <Model>Uniview IPC-3232ER-DV</Model> <DeviceType>1</DeviceType> <ConnectionAddress>192.168.137.27</ConnectionAddress> <ConnectionPort>80</ConnectionPort> <Latitude>0.000000</Latitude> <Longitude>0.000000</Longitude> <MediaProfiles>Enregistrement,Lr,Visualisation</MediaProfiles> </Camera> -<Camera> <Name>0003</Name> <Description>Telephone</Description> <Model>Digifort Mobile Camera</Model> <DeviceType>0</DeviceType> <ConnectionAddress>127.0.0.1</ConnectionAddress> <ConnectionPort>8651</ConnectionPort> <Latitude>0.000000</Latitude> <Longitude>0.000000</Longitude> <MediaProfiles>Enregistrement,Visualisation</MediaProfiles> </Camera> </Cameras> </Data> </Response>
Merci d'avance pour votre Aide
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 <?xml version="1.0" encoding="UTF-8"?> -<Response> <Code>0</Code> <Message>OK</Message> -<Data> -<MachineCode> <MachineCode>7FCB-DGF-8EDF424-69CD1*B257F8/27B7-HLCK-57DA60</MachineCode> <ServerID>7570AE14FC657FD96AD6972ACF235E6D</ServerID> </MachineCode> </Data> </Response>
Partager