-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapi.py
63 lines (50 loc) · 1.63 KB
/
api.py
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
from flask import Flask, request, jsonify
from microsoftAcademic import findMicrosoft
from googleAcademic import findGoogle
from database import queryDatabase, insertData
from bson import json_util
app = Flask(__name__)
# Consulta la base de datos, de no tener datos se hace el scrape
@app.route('/')
def welcome():
return {
'message' : 'Bienvenido a la api de python webscraper de identidad digital',
'authors' : {
'Luis Octavio Grajales Servín' : 'Dev',
'Antonio Vázquez Gutiérrez' : 'Dev',
'M.S.I. José Alejandro Vargas Díaz' : 'Profesor a cargo'
}
}
@app.route('/<string:name>')
def query_by_name(name):
queryResult = queryDatabase(name)
if(queryResult != None):
return queryResult
else:
scrapeResults = {
'microsoft' : findMicrosoft(name),
'google' : findGoogle(name)
}
insertedData = insertData(name, scrapeResults)
return insertedData
# Consulta únicamente la base de datos
@app.route('/db/<string:name>')
def query(name):
results = queryDatabase(name)
if(results != None):
print (results)
return results
else:
return { 'error' : 'Sin resultados' }
# Realiza únicamente el scrape guardando o sobreescribiendo los datos de la base de datos
@app.route('/scrape/<string:name>')
def scrape(name):
print(name)
scrapeResults = {
'microsoft' : findMicrosoft(name),
'google' : findGoogle(name)
}
insertedData = insertData(name, scrapeResults)
return insertedData
if __name__ == "__main__":
app.run(host='0.0.0.0')