블로그 이미지
잡다한 취미 생활 및 일상에 대한 소소한 이야기를 적어나가는 블로그입니다.
붉은kkk

공지사항

최근에 올라온 글

최근에 달린 댓글

글 보관함

calendar

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

파이썬 에디트 도구로 파이참이 유명하다고 하네요.



다운로드는 아래 사이트에서 하시면 되요.


http://www.jetbrains.com/pycharm/


음... 전 여기까지만, 실제 사용은 하지 않을 예정입니다.

무료 제품이 아닌 관계로 에디터로 많이 사용하는 제품이다라는 정보만 제공드리고 이만 다음 포스팅으로 찾아 올게요.


네이버 실시간 검색어 웹크롤링도 배웠으니 계속 응용을 해봐야겠죠?


이번엔 네이버 영화 리뷰를 크롤링 해 보겠습니다.


시작전 주의 사항 먼저~


주의 : 허락되지 않은 사이트의 크롤링은 법적으로 문제가 될 수 있습니다. 

제 블로그는 파이썬으로 어떻게 크롤링을 할 수 있는지에 대해서만 알려주고 있으며, 

크롤링으로 인해 법적 문제 발생시 법적 책임은 지지 않음을 알려 드립니다.



1. 크롤링할 페이지 HTML 구조 분석

     -  https://movie.naver.com/movie/running/current.nhn 

        현재 상영작 중 하나를 골라서 분석을 해 보겠습니다.

        웹페이지에 접근 후 F12를 눌러서 Data 구조를 분석 해 봅니다.

[현재 상영작 페이지]


[아쿠아맨 리뷰페이지]

- 분석을 했더니, 아래와 같은 구조를 찾았습니다.

  <ul class="rvw_list_area">

    <li> ... 

 


2. 크롤링 코드 작성

- 바로 코드를 보여드릴게요.

1: import urllib.request

2: from bs4 import BeautifulSoup

3: print("영화 리뷰를 가져올 페이지를 입력하세요.")
4: MovieName = input()

5: MoviePage = int(input('리뷰 페이지수를 입력하세요:'))

6: MoviePage = MoviePage + 1      

7: # ??? 리뷰 페이지수를 입력하면 1페이지 적게 출력되서 추가된 코드, 왜 그런지 모르겠네요.

8: print("리뷰내용은 MovieReview.txt로 저장됩니다.")

9: 
10: fileOut = open('MovieReview.txt', 'w', encoding='utf-8')

11:
12: def main():
13:    for pageidx in range(1, MoviePage):
14:     url = "%s&page=%d" % (MovieName, pageidx)
15:     soup = BeautifulSoup(urllib.request.urlopen(url).read(), "html.parser")

16:     ul = soup.find("ul",class_="rvw_list_area")
17:     for i in ul.find_all("li"):
18:         print(i.strong.get_text(), file=fileOut)
19:         

20: if __name__ == "__main__":    #프로그램의 시작점일 때만 아래 코드 실행
21:    main()

22:    
23: fileOut.close()


- 리뷰 페이지와 크롤링할 페이지 수를 입력하면, 그 뒤엔 파일로 만들어지는 구조에요. (제목만 가져옵니다)

  이 후의 응용은 추가적으로 해 보시면 될 것 같네요.


취미로 시작한 프로그래밍인데 점점 할 수 있는게 많아지고 하고 싶은 것도 많아지고 재밌어 지네요.

이론적인 부분의 공부도 필요한데, 이 부분은 시간을 들여서 천천히 하나하나 내공을 다져봐야겠어요.

(책에 나와있는 이론들은 사실 재미없습니다. 구글링으로 프로그래밍이 되니까요... 그래도 나중을 위해서 천천히...)


다음엔 더 신박한 주제로 포스팅 할게요. 다들 즐거운 프로그래밍 생활 되세요. 





오늘 소개해 드릴 책은 지식의 단련법이라는 책이에요.

음, 이 책을 알게된 계기는 "독서천재가 된 홍대리" 라는 책을 읽고 알게됐었어요.

(독서에 많은 관심을 가지고 있긴 했는데, 다독이 필요하다라는건 독서천재가 된 홍대리를 읽고 실감하게 되었지요)

 

각설하고, 이 책에서 가장 중요하게 얘기하는 부분은 딱 세가지로 압축되요.

1. 정보의 입력

2. 정보의 출력

3. 정보의 입력에서 출력에 이르기까지의 과정

 

그런데, 이 과정들은 사람들 마다 모두 다르기 때문에 정답은 존재하지 않는다고 하네요.

입력을 받았으나 출력까지 다다르는 과정에서 머릿속에서 진행되는 절차는 모두가 다름^^

이게 핵심이에요.


쉽게 얘기하면, 사람들마다 하드웨워와 구동시킬수 있는 소프트웨어가 다르다라고 보면 되겠네요.

그래서 저자는 위의 사양의 차이때문에 입력과 출력에 대한 일반론은 성립하지 않는다라고 하고 있구요.

 

책의 주 내용은, 저자가 독자들이 자기자신만의 방법론을 발견하는데 있어 도움을 주고자 자기가 체험을 통해 알게 된 방법들을 서술해 놓았답니다.

 

흐흐흐... 제가 생각하는건... 우선은 책을 읽어야 된다라는거랄까? ㅋㅋ

출력이 잘 안이루어지더라도, 우선은 다독 및 필요한 부분은 정독 & 그리고 메모를 통한 활용이 필요할 거 같아요^^

 

다들 독서를 통해 똑똑한 멋남 & 멋녀가 되어보아요^^


이번엔 네이버 실시간 검색어를 가져오는 프로그램을 만들어 볼 거에요.


실시간 검색어를 주기적으로 알 수 있다면, 


현재 인기있는 것이 무엇인지 어떤 분야가 뜨고 있는지 등을 쉽게 알 수 있게 될 테고


그런것들은 구상하고 있는 사업 아이템에 도움이 될 거에요. 


(글을 쓰는데도 많은 영감을 얻을 수 있을 거 같습니다.)



그럼 파이썬으로 코딩을 해볼까요?


주의 : 허락되지 않은 사이트의 크롤링은 법적으로 문제가 될 수 있습니다. 

         제 블로그는 파이썬으로 어떻게 크롤링을 할 수 있는지에 대해서만 알려주고 있지만, 크롤링으로 인한 법적 문제 발생시 법적 책임은 지지 않음을 알려 드립니다.


준비물 (라이브러리)

   - BeautifulSoup



1. 네이버 실시간 검색어 Data 분석

    - 실시간 검색어 검색 시 HTML 코드가 어떻게 되어 있는지 분석을 해봐야 됩니다.

       그래야 어느 부분에서 Data를 가져와야 되는지 알 수가 있거든요.




        1~20위까지의 급상승 검색어에 대한 내용을 가져올건데 마우스 우측 버튼을 눌러 소스코드 보기 or 

        크롬에서 F12로(개발자도구) 소스를 분석해야됩니다.


        소스 분석을 해 보면 <div class="ah_roll_area PM_CL_realtimeKeyword_rolling"> 밑 부분에 

        급상승 검색어가 나와있는게 보이네요. (힌트는 찾았으니 이부분을 토대로 긁어보겠습니다.)




2. 네이버 실시간 검색어 검색 프로그램 만들기

 - 뉴스토픽 부분 연예, 스포츠 부분의 실시간 검색어를 크롤링 하는 프로그램을 만들게요.

1: #-*- coding : utf-8

2: import requests
3: from bs4 import BeautifulSoup

4: #Text를 html에 저장합니다.
5: html = requests.get("http://www.naver.com").text

6: #BeautifulSoup을 이용해 html을 read합니다.
7: soup = BeautifulSoup(html, 'html.parser')

8: #가져오고 싶은 Text 부분을 선택해서 가져옵니다.
9: #실시간 검색어는 이 부분에 있기 때문에 가져온 Data를 for문으로 출력 해 줍니다.
10: keywords = soup.select('.ah_roll_area .ah_k')

11: for i, keyword in enumerate(keywords, 1):
12:      print("{}위 {}".format(i,keyword.get_text()))



완성입니다. 동작이 잘되네요 ^^, 이렇게 하나하나 오늘도 파이썬을 공부해 나가고 있습니다.

다음엔 UI도 입혀보고 해야겠네요. 

이론적인 부분도 더 파고들어서 깔끔하게 정리해서 설명드릴 수 있도록 공부해봐야겠습니다.


다음 포스팅으로 찾아올게요.



오늘은 웹사이트를 하나 개설해서 어떤 과정으로 개설을 했는지 내용 설명을 드릴 예정입니다. 


웹사이트의 목적은 여러가지일 수 있지만 제가 개설한 웹사이트의 목적은 회원유치를 통한


커플 매니징이 목적이에요. 


커플 매칭 서비스

    - 가입시 명함과 함께 프로필 기재 (본인 사진 3장 이상과 명함, 본인에 대해 자유롭게 서술)

    - 원하는 이상형 디테일하게 서술 (자유 양식,  이상형은 연예인을 예로 들거나 알기 쉽게 서술)

    최종적으로 남녀 회원의 이상형을 비교해서 유사한 회원간 매칭 시켜줌



크리스마스도 코앞이고 해서 웹으로 무작정 게시판 부터 만들어 보았습니다. 

(사실 앱으로 구현하고 싶었으나, DB쪽이 저한텐 어려운 부분이어서 웹으로 구현하기 쉬운 게시판으로 구현 했습니다.)


사실 만들었다라고 표현하기도 애매한게, 그냥 설치하면 되는거라서 어렵지 않게 해 보실수 있을거에요.


이후에 사이트를 어떻게 꾸미고, 운영하느냐부터가 진짜 어려운 부분일 거 같습니다.



카페24사이트 개설 및 게시판 설치 방법


1. 카페24 사이트 접속

   https://www.cafe24.com

   (회원 가입 과정은 생략합니다.)


2. 웹호스팅 신청

    - 저는 10G 광아우토반 Full SSD의 절약형 신청했습니다.




3. 게시판 설치

    - 첫번째 사진에서 보이는 우측상단의 '나의 서비스관리' → '호스팅관리'로 들어갑니다.

    - 왼쪽 메뉴의 '계정관리'  → '프로그램 자동설치'를 선택합니다.

    - 설치하고자 하는 프로그램 종류를 선택합니다. (저는 그누보드를 선택하여 설치하였습니다.)

    → ... 끝입니다, 어렵지 않죠?

       이제 마지막으로 사이트에 접속하여 설치가 잘 이루어졌는지 확인하는 절차만 남았네요.

    




4. 최종 확인 

     - 설치경로를 확인하여 사이트 접속을 해 줍니다.

     - 제 사이트는 'https://leafemelon.cafe24.com/' 입니다.



두둥!!! 썰렁하지만 게시판이 잘 나오고 있네요. 

회원가입 메뉴, 로그인 메뉴, 게시판, 통계 등이 보이고 기본적인 토대는

마련이 된 모습입니다. 


이제 본인만의 색깔로 꾸며가면 되겠죠? 


저도 열심히 제 생각을 구체화 시키고 구현해봐야겠습니다. 


다음 포스팅으로 만나뵐게요.



두둥! 아이패드로 처음 그려본 그림이에요.

유튜브에서 어떤 래퍼의 노래를 듣다가,,, 동영상에 나온 그림을 보고 따라 그린 그림입니다. 

(잘 그린 그림이 아니라서 실례가 될까봐 누군지는 얘기 안할게요 - 노래 잘 듣고 있습니다^^)



 그림 & 음악 & 프로그래밍 & 외국어 & 자격증 



공부 해야될 게 많아지고 있네요.


공부하는것도 재밌어지고 있고,,, 연애도 해야되는데, 올해는 버리고 ㅋㅋ


암튼 취미 생활 열심히 하면서 발전 하는 모습을 기록해 놓고자 합니다.


ㅋㅋ 다음엔 더 멋진 그림으로 포스팅 해 볼게요.

오늘은 뉴스기사를 크롤링하는 웹크롤러를 만들어 보겠습니다.


^^ 뉴스기사를 모아서 보면, 많은 양의 정보를 한번에 간편하게 볼 수 있을거 같네요.



아래 Source는 RunningWater님 블로그를 통해 배운 내용입니다.

(제 편의에 의해 Source의 일부만 변형되었습니다.

Source에 대한 상세 내용은 아래 RunningWater님 블로그를 참조해주세요.) 

출처 : https://justmakeyourself.tistory.com/entry/newsscraping-by-python-2




[Source code]

1: import requests
2: from bs4 import BeautifulSoup

3: 

4:  # 기사의 링크들이 담기는 리스트입니다.
5: rsss = []

6: # 파일은 아래 폴더에 저장됩니다.

7: fileOut = open('RssfileOut.txt','w', encoding='utf-8')

8: # rss와 기사에서 특정 부분을 크롤링하는 함수입니다.

9: def crawler(url, parser, css_selector):
10:    r = requests.get(url)
11:    soup = BeautifulSoup(r.content, parser)
12:    datas = soup.select(css_selector)

13:    if parser == 'lxml':
14:        print(datas[0].text, file=fileOut)
15:    else:
16:        for data in datas:
17:            rsss.append(data.text)

18: # 실행코드
19: print("크롤링을 시작합니다.")

20: crawler('http://file.mk.co.kr/news/rss/rss_50300009.xml','xml','item link')

21: print("rss 추출이 완료되었습니다.")

22: for link in rsss:
23:    try:
24:        crawler(link, 'lxml', '#article_body')
25:        print("="*20)
26:    except Exception as e:
27:        print(e)
28:        print('진행중이에요...')
29:        continue

30: print("크롤링을 종료합니다.")
31: fileOut.close()
       
저는 RSS뉴스 중 매일경제 신문의 부동산 섹션을 가져오는 프로그램을 작성해 보았어요.

7번행에 있는 코드는 가져온 기사를 파일로 저장해주는 코드이고

20번행에 있는 코드의 URL을 변경하면 본인이 원하는 RSS뉴스를 가져올 수 있습니다.


→ 프로그램 실행모습이에요, 크롤링 될 때 "=*20개"가 출력되면서 하나하나 크롤링 되는 거랍니다. 

    종료되면 크롤링을 종료합니다라는 내용이 출력되고 완료되요.

    결과는 직접 확인해보세요^^ 



그리고 가장 중요한 뉴스 기사의 무단전재 및 재배포는 금지입니다.

꼭 명심하세요.



하나하나 생각하고 있는 것들은 구현하다 보니 점점 파이썬이 재밌어지네요. 

다음에도 더 재미난 주제로 찾아올게요. 




웹크롤러 만들기 2탄을 포스팅합니다.

오늘은 완전히 간단한 예제 먼저 연습하고 다음시간에 신문기사 크롤러를 만들어 볼 거에요. 

(신문기사 크롤러를 만들어놓긴 했지만, 제가 코드에 대한 이해가 아직 부족해서 조금 더 공부를 하고 

포스팅할 에정입니다.)


크롤링을 위한 준비물 (라이브러리)

1. BeautifulSoup

2. 크롤링할 사이트(URL)

   - 이번 시간엔 제가 미리 만들어놓은 사이트의 웹페이지 내용을 크롤링할 겁니다.

     https://dongchanhong.github.io/python-study/



[Source Code]

1: from urllib.request import urlopen
2: from bs4 import BeautifulSoup
3: html = urlopen("http://dongchanhong.github.io/python-study/")
4: bsBody = BeautifulSoup(html.read(), "html.parser")
5: print(bsBody)


아무런 정제 없이 전체 HTML 페이지를 긁어 왔습니다.


다음엔 텍스트를 정제하는 방법, 원하는 부분만 선택해서 가져오는 방법등을 정리해 보겠습니다.