-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscript.py
More file actions
132 lines (101 loc) · 6.5 KB
/
script.py
File metadata and controls
132 lines (101 loc) · 6.5 KB
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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
import requests
from bs4 import BeautifulSoup
import json
import jsonpath_ng as jp
import ast
import math
def ecrire_fichier(fichier,valeur):
fichier.write(";")
fichier.write(valeur)
fichier.write("\n")
url = 'https://api.camptocamp.org/outings?'
nb_sorties = 30
response = requests.get(url)
f = open('/Users/jb.marzolf/Downloads/raph/sortieC2C-api.txt','a')
if response.status_code == 200:
soup = BeautifulSoup(response.text, 'html.parser')
page_text = soup.get_text(separator=' ', strip=True)
json_object = json.loads(page_text)
for i in range (nb_sorties) :
mon_parsing_title = "$['documents'][" + str(i) + "]['locales'][0]['title']"
title = jp.parse(mon_parsing_title)
result_title = title.find(json_object)
mon_parsing_document_ID = "$['documents'][" + str(i) + "]['document_id']"
document_ID = jp.parse(mon_parsing_document_ID)
result_document_ID = document_ID.find(json_object)
mon_parsing_date = "$['documents'][" + str(i) + "]['date_end']"
date = jp.parse(mon_parsing_date)
result_date = date.find(json_object)
mon_parsing_activite = "$['documents'][" + str(i) + "]['activities']"
activite = jp.parse(mon_parsing_activite)
result_activite = activite.find(json_object)
mon_parsing_cotation = "$['documents'][" + str(i) + "]['global_rating']"
cotation = jp.parse(mon_parsing_cotation)
result_cotation = cotation.find(json_object)
mon_parsing_cotation1 = "$['documents'][" + str(i) + "]['rock_free_rating']"
cotation1 = jp.parse(mon_parsing_cotation1)
result_cotation1 = cotation1.find(json_object)
mon_parsing_cotation2 = "$['documents'][" + str(i) + "]['labande_global_rating']"
cotation2 = jp.parse(mon_parsing_cotation2)
result_cotation2 = cotation2.find(json_object)
mon_parsing_cotation3 = "$['documents'][" + str(i) + "]['hiking_rating']"
cotation3 = jp.parse(mon_parsing_cotation3)
result_cotation3 = cotation3.find(json_object)
mon_parsing_cotation4 = "$['documents'][" + str(i) + "]['ice_rating']"
cotation4 = jp.parse(mon_parsing_cotation4)
result_cotation4 = cotation4.find(json_object)
mon_parsing_cotation5 = "$['documents'][" + str(i) + "]['ski_rating']"
cotation5 = jp.parse(mon_parsing_cotation5)
result_cotation5 = cotation5.find(json_object)
mon_parsing_cotation6 = "$['documents'][" + str(i) + "]['snowshoe_rating']"
cotation6 = jp.parse(mon_parsing_cotation6)
result_cotation6 = cotation6.find(json_object)
mon_parsing_cotation7 = "$['documents'][" + str(i) + "]['via_ferrata_rating']"
cotation7 = jp.parse(mon_parsing_cotation7)
result_cotation7 = cotation7.find(json_object)
mon_parsing_cotation8 = "$['documents'][" + str(i) + "]['mtb_up_rating']"
cotation8 = jp.parse(mon_parsing_cotation8)
result_cotation8 = cotation8.find(json_object)
mon_parsing_cotation9 = "$['documents'][" + str(i) + "]['mtb_down_rating']"
cotation9 = jp.parse(mon_parsing_cotation9)
result_cotation9 = cotation9.find(json_object)
mon_parsing_geom = "$['documents'][" + str(i) + "]['geometry']['geom']"
geom = jp.parse(mon_parsing_geom)
result_geom= geom.find(json_object)
result_geom_json = result_geom[0].value
result_geom_str = ''.join(result_geom[0].value)
result_geom_json_2 = json.loads(result_geom_str)
lat, long = result_geom_json_2['coordinates']
lat = (lat * 180) / 20037508.34
long = (long * 180) / 20037508.34
long = (math.atan(math.pow(math.e, long * (math.pi / 180)))* 360 ) / math.pi -90
act = str(result_activite[0].value)
try :
Sortie_str = result_cotation[0].value,";",result_title[0].value,";",result_document_ID[0].value,";",result_date[0].value,";",result_activite[0].value,";", long ,";", lat ,"\n"
if result_cotation[0].value: f.write(result_cotation[0].value)
ecrire_fichier(f,result_cotation[0].value)
ecrire_fichier(f,result_title[0].value)
ecrire_fichier(f,result_document_ID[0].value)
ecrire_fichier(f,result_date[0].value)
except IndexError:
if act == "['skitouring']":
Sortie_str = result_cotation2[0].value,";",result_cotation5[0].value,";",result_title[0].value,";",result_document_ID[0].value,";",result_date[0].value,";",result_activite[0].value,";", long ,";", lat,"\n"
elif act == "['hiking']":
Sortie_str = result_cotation3[0].value,";",result_title[0].value,";",result_document_ID[0].value,";",result_date[0].value,";",result_activite[0].value,";", long ,";", lat,"\n"
elif act == "['rock_climbing']":
Sortie_str = result_cotation1[0].value,";",result_title[0].value,";",result_document_ID[0].value,";",result_date[0].value,";",result_activite[0].value,";", long ,";", lat,"\n"
elif act == "['ice_climbing']":
Sortie_str = result_cotation4[0].value,";",result_title[0].value,";",result_document_ID[0].value,";",result_date[0].value,";",result_activite[0].value,";", long ,";", lat ,"\n"
elif act == "['snowshoeing']":
Sortie_str = result_cotation6[0].value,";",result_title[0].value,";",result_document_ID[0].value,";",result_date[0].value,";",result_activite[0].value,";", long ,";", lat,"\n"
elif act == "['via_ferrata']":
Sortie_str = result_cotation7[0].value,";",result_title[0].value,";",result_document_ID[0].value,";",result_date[0].value,";",result_activite[0].value,";", long ,";", lat,"\n"
elif act == "['mountain_biking']":
Sortie_str = result_cotation8[0].value,"/",result_cotation9[0].value,";",result_title[0].value,";",result_document_ID[0].value,";",result_date[0].value,";",result_activite[0].value,";", long ,";", lat,"\n"
else :
Sortie_str = "Cotation non rensenseignée",";",result_title[0].value,";",result_document_ID[0].value,";",result_date[0].value,";",result_activite[0].value,";", long ,";", lat,"\n"
f.write(str(Sortie_str))
f.write("\n")
print(str(i))
f.close()
print("effectue")