-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapp.py
55 lines (41 loc) · 1.32 KB
/
app.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
from configparser import MAX_INTERPOLATION_DEPTH
from newspaper import Article
from datetime import datetime
#import nltk
#import ssl
#try:
# _create_unverified_https_context = ssl._create_unverified_context
#except AttributeError:
# pass
#else:
# ssl._create_default_https_context = _create_unverified_https_context
#nltk.download()
from flask import Flask, jsonify, request
app = Flask(__name__)
@app.route("/api/v1/parse", methods=['POST'])
def get_text():
request_data = request.get_json()
url = request_data['url']
article = Article(url)
article.download()
article.parse()
article.nlp()
article.fetch_images()
publish_date = None
if article.publish_date is not None:
article_meta_data = article.meta_data
publish_dates = sorted({value for (key, value) in article_meta_data.items() if key == 'pubdate'})
publish_date = next(iter(publish_dates), None)
return jsonify(
title=article.title,
text=article.text,
topImage=article.top_image,
images=list(article.imgs),
authors=article.authors,
publishDate=publish_date,
movies=article.movies,
summary=article.summary,
metaLang=article.meta_lang,
metaDescription=article.meta_description,
metaKeywords=article.meta_keywords
)