|
@@ -1,66 +1,66 @@
|
1
|
|
-from konlpy.tag import Kkma
|
2
|
|
-import os
|
3
|
|
-import sys
|
4
|
|
-import urllib.request
|
5
|
|
-import json
|
6
|
|
-import re
|
7
|
|
-
|
8
|
|
-def naver_blog_search(client_id, client_secret, text):
|
9
|
|
- encText = urllib.parse.quote(text)
|
10
|
|
- url = "https://openapi.naver.com/v1/search/blog?query=" + encText # json 결과
|
11
|
|
- # url = "https://openapi.naver.com/v1/search/blog.xml?query=" + encText # xml 결과
|
12
|
|
- request = urllib.request.Request(url)
|
13
|
|
- request.add_header("X-Naver-Client-Id",client_id)
|
14
|
|
- request.add_header("X-Naver-Client-Secret",client_secret)
|
15
|
|
- response = urllib.request.urlopen(request)
|
16
|
|
- rescode = response.getcode()
|
17
|
|
- if(rescode==200):
|
18
|
|
- response_body = response.read()
|
19
|
|
- return response_body.decode('utf-8')
|
20
|
|
- else:
|
21
|
|
- print("Error Code:" + rescode)
|
22
|
|
-
|
23
|
|
-def striphtml(data):
|
24
|
|
- p = re.compile('<.*?>')
|
25
|
|
- return p.sub('', data)
|
26
|
|
-
|
27
|
|
-def nlp_process():
|
28
|
|
- result = []
|
29
|
|
- kkma = Kkma()
|
30
|
|
- naver_result = naver_blog_search('OJgN42xxZiJXpnZtCH1j', 'crXggqJhhW', '코딩')
|
31
|
|
- y = json.loads(naver_result)
|
32
|
|
- for b in y['items']:
|
33
|
|
- for word, pos in kkma.pos(striphtml(b['description'])):
|
34
|
|
- if pos == 'NNG' or pos == 'NNP':
|
35
|
|
- result.append(word)
|
36
|
|
-
|
37
|
|
- words = set(result)
|
38
|
|
- loofWords = list(words)
|
39
|
|
- countList = []
|
40
|
|
- for b in loofWords:
|
41
|
|
- if result.count(b) > 1:
|
42
|
|
- dic = dict()
|
43
|
|
- dic["text"] = b
|
44
|
|
- dic["size"] = result.count(b)
|
45
|
|
- countList.append(dic)
|
46
|
|
- return countList
|
47
|
|
-
|
48
|
|
-
|
49
|
|
-
|
50
|
|
-from flask import Flask, jsonify, render_template
|
51
|
|
-import requests
|
52
|
|
-from bs4 import BeautifulSoup
|
53
|
|
-
|
54
|
|
-app = Flask(__name__)
|
55
|
|
-# app.config['JSON_AS_ASCII'] = False
|
56
|
|
-countList = ""
|
57
|
|
-
|
58
|
|
-@app.route("/")
|
59
|
|
-def view():
|
60
|
|
- return render_template("naver-blog-nlp-ranking-d3.html", values=countList)
|
61
|
|
-
|
62
|
|
-if __name__ == "__main__":
|
63
|
|
- countResultList = nlp_process()
|
64
|
|
- print(countResultList)
|
65
|
|
- countList = countResultList;
|
|
1
|
+from konlpy.tag import Kkma
|
|
2
|
+import os
|
|
3
|
+import sys
|
|
4
|
+import urllib.request
|
|
5
|
+import json
|
|
6
|
+import re
|
|
7
|
+
|
|
8
|
+def naver_blog_search(client_id, client_secret, text):
|
|
9
|
+ encText = urllib.parse.quote(text)
|
|
10
|
+ url = "https://openapi.naver.com/v1/search/blog?query=" + encText # json 결과
|
|
11
|
+ # url = "https://openapi.naver.com/v1/search/blog.xml?query=" + encText # xml 결과
|
|
12
|
+ request = urllib.request.Request(url)
|
|
13
|
+ request.add_header("X-Naver-Client-Id",client_id)
|
|
14
|
+ request.add_header("X-Naver-Client-Secret",client_secret)
|
|
15
|
+ response = urllib.request.urlopen(request)
|
|
16
|
+ rescode = response.getcode()
|
|
17
|
+ if(rescode==200):
|
|
18
|
+ response_body = response.read()
|
|
19
|
+ return response_body.decode('utf-8')
|
|
20
|
+ else:
|
|
21
|
+ print("Error Code:" + rescode)
|
|
22
|
+
|
|
23
|
+def striphtml(data):
|
|
24
|
+ p = re.compile('<.*?>')
|
|
25
|
+ return p.sub('', data)
|
|
26
|
+
|
|
27
|
+def nlp_process(word):
|
|
28
|
+ result = []
|
|
29
|
+ naver_result = naver_blog_search('OJgN42xxZiJXpnZtCH1j', 'crXggqJhhW', word)
|
|
30
|
+ y = json.loads(naver_result)
|
|
31
|
+ for b in y['items']:
|
|
32
|
+ for word, pos in kkma.pos(striphtml(b['description'])):
|
|
33
|
+ if pos == 'NNG' or pos == 'NNP':
|
|
34
|
+ result.append(word)
|
|
35
|
+
|
|
36
|
+ words = set(result)
|
|
37
|
+ loofWords = list(words)
|
|
38
|
+ countList = []
|
|
39
|
+ for b in loofWords:
|
|
40
|
+ if result.count(b) > 1:
|
|
41
|
+ dic = dict()
|
|
42
|
+ dic["text"] = b
|
|
43
|
+ dic["size"] = result.count(b)
|
|
44
|
+ countList.append(dic)
|
|
45
|
+ return countList
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+from flask import Flask, jsonify, render_template
|
|
50
|
+import requests
|
|
51
|
+from bs4 import BeautifulSoup
|
|
52
|
+
|
|
53
|
+app = Flask(__name__)
|
|
54
|
+# app.config['JSON_AS_ASCII'] = False
|
|
55
|
+countList = ""
|
|
56
|
+kkma = Kkma()
|
|
57
|
+
|
|
58
|
+@app.route("/<word>")
|
|
59
|
+def view(word):
|
|
60
|
+ countResultList = nlp_process(word)
|
|
61
|
+ print(countResultList)
|
|
62
|
+ countList = countResultList;
|
|
63
|
+ return render_template("naver-blog-nlp-ranking-d3.html", values=countList)
|
|
64
|
+
|
|
65
|
+if __name__ == "__main__":
|
66
|
66
|
app.run(host="127.0.0.1", port="8080")
|