//광고차단회복
반응형

코틀린 언어를 이용한 안드로이드 가계부앱을 만들 계획. 

개요

프로젝트명 코틀린 안드로이드 가계부앱
목표 1. 가계부앱을 통한 현금과 자산의 소비,지출 파악 및 돈을 효율적으로 사용하기 위한 가계부앱
2. 코틀린 언어의 사용법 및 프로그래밍 실력 향상을 위한 앱 개발
주요 기능 1. 현재 자산을 입력하고 확인할 수 있는 UI
2. 스스로의 지출을 입력하고 삭제할 수 있는 기능
3. 지출을 카테고리별로 나누어 많이 소비하는 부분을 분석 및 파악
4. 금융결제원 API를 통한 자신의 카드를 연동하여 스스로 지출을 입력하지 않아도 불러올 수 있는 기능
github 미정

 

반응형

'프로젝트' 카테고리의 다른 글

보안뉴스 웹크롤링(9) 완료  (0) 2020.08.11
보안뉴스 웹크롤링(8)  (0) 2020.08.09
보안뉴스 웹크롤링(7)  (0) 2020.08.08
보안뉴스 웹크롤링(6)  (0) 2020.08.07
반응형
보안뉴스 웹크롤링을 완료했습니다. 파이썬을 이용하였으며 주요 기능은 오늘의 날짜를 기준으로 올라온 기사의 제목을 찾아 나열하며, 이번 주의 인기뉴스를 알려주며 원하는 기사를 검색할 수 있는 프로그램입니다.
보안뉴스 robots.txt

보안뉴스는 2020.8.12일 기준으로는 웹 크롤링이 가능한 것을 알립니다.

또한, 제가 만든 프로그램은 오직 BeautifulSoup를 이용하여 만든 것이므로 많이 부족할 수 있다는 점 양해 바랍니다.

<소스코드>

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
import datetime
from bs4 import BeautifulSoup as bs
import urllib.request as req
import urllib
 
def Main_Menu() :
    print()
    print("--------메뉴선택--------")
    print("\t1. 오늘의 주요 기사는?")
    print("\t2. 주간의 인기 뉴스")
    print("\t3. 기사 검색하기")
    print("\t0. 종료하기")
    print("----------------------")
 
def Today_Main_Post() :
    today = datetime.datetime.today()
    today_date = today.strftime("%Y-%m\\%d.")
    today_date = str(today_date).replace("-","년").replace("\\","월").replace(".","일")
    dates= []
    titles=[]
    url = "https://www.boannews.com/media/t_list.asp"
    res = req.urlopen(url)
    soup = bs( res , "html.parser" )
    today_main_posts_title = soup.find_all("span",class_="news_txt")
    today_main_posts_dates = soup.select(" div.news_list > span.news_writer")
    tmp = today_main_posts_dates
    for ls in tmp :
        today_main_posts_dates = ls.string
        dates.append(today_main_posts_dates.split("|")[1])
    tmp = today_main_posts_title
    for ls in tmp :
        today_main_posts_title = ls.string
        titles.append(today_main_posts_title)
    i = 0
    for ls in dates :
        dates[i] = dates[i].replace(" ","")
        i += 1
    i = 0
    boolean = True
    while boolean :
        if str(dates[i][0:11]) == today_date :
            print("#%d >>"%(i+1),titles[i])
        else :
            boolean = False
        i += 1
 
    
def Week_Hit_News() :
    url = "https://www.boannews.com/media/o_list.asp"
    res = req.urlopen(url)
    soup = bs(res,"html.parser")
    Hit_News_List = soup.select("#main_HitNews > ul > li > a ")
    i = 1
    for ls in Hit_News_List :
        Hit_List = ls.string
        print("#%d >>"%i,Hit_List)
        i+=1
 
def Search_Article(name_article) :
    name_article_euc = name_article.encode("euc-kr")
    name_article_euc_kr = str(name_article_euc)
    name_article_euc_kr = name_article_euc_kr.replace("\\x","%").replace("b","").replace("\'""")
    name_article_euc =  urllib.parse.quote(name_article_euc)
    url = "https://www.boannews.com/search/news_list.asp?search=key_word&find="+name_article_euc
    res = req.urlopen(url)
    soup = bs(res,"html.parser")
    searching_news_title = soup.select("#news_area > div > a")
    i = 1 
    for ls in searching_news_title :
        News_title = ls.string
        if i >10 :
            continue
        elif News_title == None :
            continue
        else :
            print("#%d >>"%i,News_title)
        i+=1
 
 
while True :
    Main_Menu()
    menu_num = input("입력 : ")
    input_article = ""
    if int(menu_num) == 1 :
        Today_Main_Post()
    elif int(menu_num) == 2 :
        Week_Hit_News()
    elif int(menu_num) == 3:
        input_article = input("찾을 기사 제목 : ")
        Search_Article(input_article)
    elif int(menu_num) == 0 :
        break
 
 
cs

기능 1 :메뉴 1번으로 그날의 날짜에 올라온 기사의 제목들을 나열하는 기능입니다.

기능 2 : 인기뉴스를 순서대로 나열하는 기능입니다.

기능 3 : 원하는 기사를 키워드를 입력해 검색하는 기능입니다.


 

 

 

 

반응형

'프로젝트' 카테고리의 다른 글

코틀린 안드로이드 가계부앱 - 1  (0) 2024.12.13
보안뉴스 웹크롤링(8)  (0) 2020.08.09
보안뉴스 웹크롤링(7)  (0) 2020.08.08
보안뉴스 웹크롤링(6)  (0) 2020.08.07
반응형
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
import pandas as pd
import datetime
from bs4 import BeautifulSoup as bs
from urllib.request import urlparse
import urllib.request as req
import urllib
 
def Main_Menu() :
    print()
    print("--------메뉴선택--------")
    print("\t1. 오늘의 주요 기사는?")
    print("\t2. 주간의 인기 뉴스")
    print("\t3. 기사 검색하기")
    print("\t0. 종료하기")
    print("----------------------")
 
def Today_Main_Post() :
    today = datetime.datetime.today()
    today_date = today.strftime("%Y-%m\\%d.")
    today_date = str(today_date).replace("-","년").replace("\\","월").replace(".","일")
    dates= []
    titles=[]
    url = "https://www.boannews.com/media/t_list.asp"
    res = req.urlopen(url)
    soup = bs( res , "html.parser" )
    today_main_posts_title = soup.select(" div.news_list > a > span.news_txt")
    today_main_posts_dates = soup.select(" div.news_list > span.news_writer")
    tmp = today_main_posts_dates
    for ls in tmp :
        today_main_posts_dates = ls.string
        dates.append(today_main_posts_dates.split("|")[1])
    tmp = today_main_posts_title
    for ls in tmp :
        today_main_posts_title = ls.string
        titles.append(today_main_posts_title)
    i = 0
    for ls in dates :
        dates[i] = dates[i].replace(" ","")
        i += 1
    i = 0
    boolean = True
    while boolean :
        if str(dates[i][0:11]) == today_date :
            print("#%d >>"%(i+1),titles[i])
        else :
            boolean = False
        i += 1
    
def Week_Hit_News() :
    url = "https://www.boannews.com/media/o_list.asp"
    res = req.urlopen(url)
    soup = bs(res,"html.parser")
    Hit_News_List = soup.select("#main_HitNews > ul > li > a ")
    i = 1
    for ls in Hit_News_List :
        Hit_List = ls.string
        print("#%d >>"%i,Hit_List)
        i+=1
 
def Search_Article(name_article) :
    name_article_euc = name_article.encode("euc-kr")
    #print(name_article_euc)
    name_article_euc_kr = str(name_article_euc)
    name_article_euc_kr = name_article_euc_kr.replace("\\x","%").replace("b","").replace("\'""")
    #print(name_article_euc_kr)
    name_article_euc =  urllib.parse.quote(name_article_euc)
    url = "https://www.boannews.com/search/news_list.asp?search=key_word&find="+name_article_euc
    res = req.urlopen(url)
    soup = bs(res,"html.parser")
    searching_news_title = soup.select("#news_area > div > a")
    i = 1 
    for ls in searching_news_title :
        News_title = ls.string
        if i >10 :
            continue
        elif News_title == None :
            continue
        else :
            print("#%d >>"%i,News_title)
        i+=1
 
 
while True :
    Main_Menu()
    menu_num = input("입력 : ")
    input_article = ""
    if int(menu_num) == 1 :
        Today_Main_Post()
    elif int(menu_num) == 2 :
        Week_Hit_News()
    elif int(menu_num) == 3:
        input_article = input("찾을 기사 제목 : ")
        Search_Article(input_article)
    elif int(menu_num) == 0 :
        break
 
 
cs
반응형

'프로젝트' 카테고리의 다른 글

코틀린 안드로이드 가계부앱 - 1  (0) 2024.12.13
보안뉴스 웹크롤링(9) 완료  (0) 2020.08.11
보안뉴스 웹크롤링(7)  (0) 2020.08.08
보안뉴스 웹크롤링(6)  (0) 2020.08.07
반응형
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
import pandas as pd
import datetime
from bs4 import BeautifulSoup as bs
from urllib.request import urlparse
import urllib.request as req
import urllib
 
def Main_Menu() :
    print()
    print("--------메뉴선택--------")
    print("\t1. 오늘의 주요 기사는?")
    print("\t2. 주간의 인기 뉴스")
    print("\t3. 기사 검색하기")
    print("\t0. 종료하기")
    print("----------------------")
 
def Today_Main_Post() :
    today = datetime.datetime.now()
    
    return
 
def Week_Hit_News() :
    url = "https://www.boannews.com/media/o_list.asp"
    res = req.urlopen(url)
    soup = bs(res,"html.parser")
    Hit_News_List = soup.select("#main_HitNews > ul > li > a ")
    i = 1
    for ls in Hit_News_List :
        Hit_List = ls.string
        print("#%d >>"%i,Hit_List)
        i+=1
 
def Search_Article(name_article) :
    name_article_euc = name_article.encode("euc-kr")
    #print(name_article_euc)
    name_article_euc_kr = str(name_article_euc)
    name_article_euc_kr = name_article_euc_kr.replace("\\x","%").replace("b","").replace("\'""")
    #print(name_article_euc_kr)
    name_article_euc =  urllib.parse.quote(name_article_euc)
    url = "https://www.boannews.com/search/news_list.asp?search=key_word&find="+name_article_euc
    res = req.urlopen(url)
    soup = bs(res,"html.parser")
    searching_news_title = soup.select("#news_area > div > a")
    i = 1 
    for ls in searching_news_title :
        News_title = ls.string
        if i >10 :
            continue
        elif News_title == None :
            continue
        else :
            print("#%d >>"%i,News_title)
        i+=1
 
 
while True :
    Main_Menu()
    menu_num = input("입력 : ")
    input_article = ""
    if int(menu_num) == 1 :
        Today_Main_Post()
    elif int(menu_num) == 2 :
        Week_Hit_News()
    elif int(menu_num) == 3:
        input_article = input("찾을 기사 제목 : ")
        Search_Article(input_article)
    elif int(menu_num) == 0 :
        break
 
 
cs
반응형

'프로젝트' 카테고리의 다른 글

보안뉴스 웹크롤링(9) 완료  (0) 2020.08.11
보안뉴스 웹크롤링(8)  (0) 2020.08.09
보안뉴스 웹크롤링(6)  (0) 2020.08.07
보안뉴스 웹크롤링(5)  (0) 2020.08.06
반응형
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
import pandas as pd
import sys 
import time
import datetime
from bs4 import BeautifulSoup as bs
import unicodedata
from urllib.request import urlparse
import urllib.request as req
import urllib
 
def Main_Menu() :
    print()
    print("--------메뉴선택--------")
    print("\t1. 오늘의 주요 기사는?")
    print("\t2. 주간의 인기 뉴스")
    print("\t3. 기사 검색하기")
    print("\t0. 종료하기")
    print("----------------------")
 
def Today_Main_Post() :
    return
 
def Week_Hit_News() :
    url = "https://www.boannews.com/media/o_list.asp"
    res = req.urlopen(url)
    soup = bs(res,"html.parser")
    Hit_News_List = soup.select("#main_HitNews > ul > li > a ")
    i = 1
    for ls in Hit_News_List :
        Hit_List = ls.string
        print("#%d >>"%i,Hit_List)
        i+=1
 
def Search_Article(name_article) :
    name_article_euc = name_article.encode("euc-kr")
    print(name_article_euc)
    name_article_euc_kr = str(name_article_euc)
    name_article_euc_kr = name_article_euc_kr.replace("\\x","%").replace("b","").replace("\'""")
    print(name_article_euc_kr)
    name_article_euc =  urllib.parse.quote(name_article_euc)
    url = "https://www.boannews.com/search/news_list.asp?search=key_word&find="+name_article_euc
    res = req.urlopen(url)
    soup = bs(res,"html.parser")
    searching_news_title = soup.find_all("div","news_txt" )
    i = 1 
    for ls in searching_news_title :
        News_title = ls.string
        print("#%d >>"%i,News_title)
        i+=1
 
 
while True :
    Main_Menu()
    menu_num = input("입력 : ")
    input_article = ""
    if int(menu_num) == 1 :
        Today_Main_Post()
    elif int(menu_num) == 2 :
        Week_Hit_News()
    elif int(menu_num) == 3:
        input_article = input("찾을 기사 제목 : ")
        Search_Article(input_article)
    elif int(menu_num) == 0 :
        break
 
 
 
cs
반응형

'프로젝트' 카테고리의 다른 글

보안뉴스 웹크롤링(8)  (0) 2020.08.09
보안뉴스 웹크롤링(7)  (0) 2020.08.08
보안뉴스 웹크롤링(5)  (0) 2020.08.06
보안뉴스 웹크롤링(4)  (0) 2020.08.05
반응형
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
#-*-coding:utf-8
import pandas as pd
import sys 
import time
import datetime
from bs4 import BeautifulSoup as bs
import unicodedata
 
import urllib.request as req
 
def Main_Menu() :
    print()
    print("--------메뉴선택--------")
    print("\t1. 오늘의 주요 기사는?")
    print("\t2. 주간의 인기 뉴스")
    print("\t3. 기사 검색하기")
    print("\t0. 종료하기")
    print("----------------------")
 
def Today_Main_Post() :
    return
 
def Week_Hit_News() :
    url = "https://www.boannews.com/media/o_list.asp"
    res = req.urlopen(url)
    soup = bs(res,"html.parser")
    Hit_News_List = soup.select("#main_HitNews > ul > li > a ")
    i = 1
    for ls in Hit_News_List :
        Hit_List = ls.string
        print("#%d >>"%i,Hit_List)
        i+=1
 
def Search_Article(name_article) :
    name_article_euc = name_article.encode("euc-kr")
    url = "https://www.boannews.com/search/news_list.asp?search=key_word&find="+name_article_euc
    res = req.urlopen(url)
    soup = bs(res,"html.parser")
    print(soup)
    return 
#eucStr = utfStr.decode('UTF-8').encode('EUC-KR','ignore')
#bytearray(str, 'encoding').decode('another_encoding')
 
while True :
    Main_Menu()
    menu_num = input("입력 : ")
    input_article = ""
    if int(menu_num) == 1 :
        Today_Main_Post()
    elif int(menu_num) == 2 :
        Week_Hit_News()
    elif int(menu_num) == 3:
        input_article = input("찾을 기사 제목 : ")
        Search_Article(input_article)
    elif int(menu_num) == 0 :
        break
 
cs
반응형

'프로젝트' 카테고리의 다른 글

보안뉴스 웹크롤링(7)  (0) 2020.08.08
보안뉴스 웹크롤링(6)  (0) 2020.08.07
보안뉴스 웹크롤링(4)  (0) 2020.08.05
보안뉴스 웹크롤링(3)  (0) 2020.07.16
반응형
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
import pandas as pd
 
import time
import datetime
from bs4 import BeautifulSoup as bs
 
import urllib.request as req
 
def Main_Menu() :
    print()
    print("--------메뉴선택--------")
    print("\t1. 오늘의 주요 기사는?")
    print("\t2. 주간의 인기 뉴스")
    print("\t3. 기사 검색하기")
    print("\t0. 종료하기")
    print("----------------------")
 
def Today_Main_Post() :
    
    return
 
def Week_Hit_News() :
    url = "https://www.boannews.com/media/o_list.asp"
    res = req.urlopen(url)
    soup = bs(res,"html.parser")
    Hit_News_List = soup.select("#main_HitNews > ul > li > a ")
    i = 1
    
    for ls in Hit_News_List :
        Hit_List = ls.string
        print("#%d >>"%i,Hit_List)
        i+=1
    
def Search_Article(name_article) :
    return 
 
while True :
    Main_Menu()
    menu_num = input("입력 : ")
    input_article = ""
    if int(menu_num) == 1 :
        Today_Main_Post()
    elif int(menu_num) == 2 :
        Week_Hit_News()
    elif int(menu_num) == 3:
        input_article = input("찾을 기사 제목 : ")
        Search_Article(input_article)
    elif int(menu_num) == 0 :
        break
 
 
 
cs
반응형

'프로젝트' 카테고리의 다른 글

보안뉴스 웹크롤링(6)  (0) 2020.08.07
보안뉴스 웹크롤링(5)  (0) 2020.08.06
보안뉴스 웹크롤링(3)  (0) 2020.07.16
보안뉴스 웹크롤링(2)  (0) 2020.07.15
반응형
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
import pandas as pd
 
import time
import datetime
from bs4 import BeautifulSoup as bs
 
import urllib.request as req
 
def Main_Menu() :
    print()
    print("--------메뉴선택--------")
    print("\t1. 오늘의 주요 기사는?")
    print("\t2. 주간의 인기 뉴스")
    print("\t3. 기사 검색하기")
    print("\t0. 종료하기")
    print("----------------------")
 
def Today_Main_Post() :
    return
 
def Week_Hit_News() :
    url = "https://www.boannews.com/media/o_list.asp"
    res = req.urlopen(url)
    soup = bs(res,"html.parser")
    Hit_News_List = soup.select("#main_HitNews > ul > li > a ")
    
    for ls in Hit_News_List :
        Hit_List = ls.string
        print(remove_tags(ls))
 
"""
    url = "https://www.boannews.com/default.asp"
    res = req.urlopen(url)
    soup = bs(res,"html.parser")
    a_list = soup.select("#main_menu_hash > a")
    for a in a_list :
        name = a.string
    if name == None :
        continue
    print("-",name)
"""
while True :
    Main_Menu()
    menu_num = input("입력 : ")
    if int(menu_num) == 1 :
        Today_Main_Post()
    elif int(menu_num) == 2 :
        Week_Hit_News()
    elif int(menu_num) == 0 :
        break
cs
반응형

'프로젝트' 카테고리의 다른 글

보안뉴스 웹크롤링(5)  (0) 2020.08.06
보안뉴스 웹크롤링(4)  (0) 2020.08.05
보안뉴스 웹크롤링(2)  (0) 2020.07.15
보안뉴스 웹크롤링(1)  (0) 2020.07.14
반응형
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
import pandas as pd
import time
from bs4 import BeautifulSoup as bs
import urllib.request as req
 
def Main_Menu() :
    print("메뉴선택--------")
    print("\t1. 오늘의 주요 기사는?")
    print("\t2. 주간의 인기 뉴스")
    print("\t3. 기사 검색하기")
    print("\tQ. 종료하기")
 
def Today_Main_Post() :
    return
 
 
url = "https://www.boannews.com/default.asp"
res = req.urlopen(url)
soup = bs(res,"html.parser")
a_list = soup.select("#main_menu_hash > a")
for a in a_list :
    name = a.string
    if name == None :
        continue
    print("-",name)
 
 
 
while True :
    Main_Menu()
    menu_num = input("입력 : ")
    if int(menu_num) == 1 :
        Today_Main_Post()
    elif menu_num.upper() == 'Q' :
 
cs
반응형

'프로젝트' 카테고리의 다른 글

보안뉴스 웹크롤링(5)  (0) 2020.08.06
보안뉴스 웹크롤링(4)  (0) 2020.08.05
보안뉴스 웹크롤링(3)  (0) 2020.07.16
보안뉴스 웹크롤링(1)  (0) 2020.07.14
반응형

보안뉴스 크롤링으로 메인 메뉴 크롤링 하기


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
import pandas as pd
 
from bs4 import BeautifulSoup as bs
 
import urllib.request as req
 
 
 
 
 
url = "https://www.boannews.com/default.asp"
 
res = req.urlopen(url)
 
soup = bs(res,"html.parser")
 
 
 
a_list = soup.select("#main_menu_hash >  a")
 
 
 
for a in a_list :
 
    name = a.string
 
    print("-",name)
 
 
 
#print( a_list )
cs


반응형

'프로젝트' 카테고리의 다른 글

보안뉴스 웹크롤링(5)  (0) 2020.08.06
보안뉴스 웹크롤링(4)  (0) 2020.08.05
보안뉴스 웹크롤링(3)  (0) 2020.07.16
보안뉴스 웹크롤링(2)  (0) 2020.07.15

+ Recent posts