Bonjour à tous,

Dans le cadre de mon stage, j'utilise un outil nommé TaDaWeb qui grosso-modo fait du scraping de site web, centralise les bouts de codes html que l'on a choisi sur les sites web sources, on peut donc extraire des listes (par exemple les liens des dernières news).

On peut donc créer des TaDa, qui sont un agglomérat de divers sorties depuis différentes sources (un TaDa concernant le football, j'aurais en entrée le site web de l'équipe, eurosport, etc... et j'aurais en sorti, une liste des dernières news de l'équipe sur le foot, le flux RSS d'eurosport etc..).

TaDaWeb propose un interface web pour checker nos tadas, mais aussi, une API REST qui permet de récupérer un code en JSON représentant le TaDa que l'on veut consulter, on pourra ensuite l'analyser, le stocker dans une BDD, etc...

Malgré des bases en HTML/CSS, PHP, C/C++, je n'ai jamais utilisé une API telle que celle-ci, ni le JSON.

Voici un exemple de code de l'API en Python fournit dans l'aide de TaDaWeb (à la fin du message)


Selon moi, l'API sert simplement à consultant la BDD de chez TaDaWeb est ensuite renvoyer sous format JSON le TaDa souhaité. Puis-je donc faire cela en C/C++ ou PHP en m'affranchissant du code python si dessous, ou dois-je nécessaire utiliser ce code Python ?

Le but final est d'avoir un petit programme (Web ou non...à voir) pour récupérer plusieurs TaDas à la volée, les stocker dans une BDD en les analysant et en les datant pour ensuite venir faire de l'exploitation ultérieurement.

Mes connaissances les plus solides : Mysql (SQL donc), PHP, C/C++ ... je peux m'adapter en fonction

Merci à tous pour votre aide , en espérant avoir été clair.

Donfal71

Ci-dessous le code :


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
#!/usr/bin/env python
 
import os, json, sys
import urllib2, urllib
import base64
 
# API routes:
#
# POST /auth/token
# DELETE /auth/token
# GET /help
# GET /me
# GET /users/:uid
# GET /tadas
# GET /me/tadas
# GET /users/:uid/tadas
# GET /tadas/:tada_id
 
#
# Config
#
endpoint = 'https://api.tadaweb.com/v1'
credentials = base64.b64encode('KEY:TOKEN')
 
#
# First get bearer
#
data = urllib.urlencode({})
data = data.encode('utf-8')
request = urllib2.Request(endpoint + '/auth/token', data)
request.add_header("Authorization","Basic " + credentials)
try:
	f = urllib2.urlopen(request, data)
except urllib2.HTTPError, e:
    sys.exit('Exception: code=' + str(e.code) + ', msg=' + e.msg)
except urllib2.URLError, e:
    sys.exit('Critical - ' + str(e.args))
except:
	sys.exit('Critical - exception')
data = json.loads(f.read().decode('utf-8'))
 
def getTaDa(tada_id):
	request = urllib2.Request(endpoint + '/tadas/' + tada_id)
	request.add_header("Authorization", "Bearer " + base64.b64encode(data['bearer']))
	try:
		f = urllib2.urlopen(request)
	except urllib2.HTTPError, e:
		sys.exit('Exception: code=' + str(e.code) + ', msg=' + e.msg)
	except urllib2.URLError, e:
		sys.exit('Critical - ' + str(e.args))
	except:
		sys.exit('Critical - exception')
	tada = json.loads(f.read().decode('utf-8'))
	return tada
 
def getTaDas():
	request = urllib2.Request(endpoint + '/me/tadas')
	request.add_header("Authorization", "Bearer " + base64.b64encode(data['bearer']))
	try:
		f = urllib2.urlopen(request)
	except urllib2.HTTPError, e:
		sys.exit('Exception: code=' + str(e.code) + ', msg=' + e.msg)
	except urllib2.URLError, e:
		sys.exit('Critical - ' + str(e.args))
	except:
		sys.exit('Critical - exception')
	tadas = json.loads(f.read().decode('utf-8'))
 
	# Loop on each TaDa
	for r in tadas['results']:
		tada = getTaDa(r['uid'])
		satellites = tada['content']
		if len(satellites) < 1:
			print "No output found for this TaDa, problem?"
			continue
 
		print '================================'
		print '================================'
		print '================================'
		print 'TaDa: ' + tada['name']
		for sat in satellites:
			if sat['type'] == 'list':
				for sat_data in sat['data']:
					print 'List item:' + base64.b64decode(sat_data['plaintext_b64']).strip()
			elif sat['type'] == 'item':
				print 'Item:' + base64.b64decode(sat['data']['plaintext_b64']).strip()
 
getTaDas()