Python & Ruby

패키지 매니저

수업소개

현대의 소프트웨어는 혼자 만들지 않습니다. 다른 사람이 만든 소프트웨어를 부품으로 사용해서 무엇인가를 만들어가는 것이 보편적인 개발 방법입니다. 패키지 메니저를 사용하면 매우 간편하게 부품을 사용할 수 있습니다. 본 수업에서는 패키지 메니저를 다루는 방법을 살펴봅니다. 

예제소개

본 수업에서는 패키지 메니저의 사용 사례로 크롤링(혹은 스크랩핑)이라는 것을 살펴봅니다. 웹페이지를 다운로드 받아서 분석하는 방법에 대한 내용입니다. 

패키지

package. 완성된 소프트웨어나 다른 소프트웨어를 완성하기 위해서 필요한 부품이 되는 소프트웨어를 의미합니다. 

패키지 메니저

package manager. 패키지를 설치하기 위해서는 다운로드, 설치, 빌드, 테스트, 업그레이드, 의존성 관리 등 복잡한 상황이 발생합니다. 이런 복잡성을 낮추고 쉽게 패키지를 이용할 수 있도록 돕는 소프트웨어가 패키지 메니저 입니다. 

Python의 패키지 메니저

PyPI

Python Pakage Index. 파이썬의 패키지들을 정리해둔 사이트.

https://pypi.python.org/pypi

PIP

파이썬의 패키지 메니저.

Ruby의 패키지 메니저

RubyGems.org

루비의 패키지들을 정리해둔 사이트.

https://rubygems.org/

RubyGems

루비의 패키지 메니저.RubyGems.org에 등록된 패키지들을 쉽게 설치할 수 있도록 도와줍니다. 

수업

패키지 메니저 소개

패키지 메니저 확인

Python의 패키지 메니저를 이용해서 크롤링하는 방법

소스코드

pip install requests
import requests
from bs4 import BeautifulSoup
r = requests.get('https://codingeverybody.github.io/scraping_sample/1.html')
soup = BeautifulSoup(r.text, 'html.parser')
print('Title : '+soup.title.string)
articles = soup.findAll('div', {'class' : 'em'})
print('Article : '+articles[0].text)

print("====================")

r = requests.get('https://codingeverybody.github.io/scraping_sample/2.html')
soup = BeautifulSoup(r.text, 'html.parser')
print('Title : '+soup.title.string)
articles = soup.findAll('div', {'class' : 'strong'})
print('Article : '+articles[0].text)

Ruby의 패키지 메니저를 이용해서 크롤링하는 방법

소스코드 

gem install http;
gem install nokogiri;
require "http"
require 'nokogiri'

html = HTTP.get('https://codingeverybody.github.io/scraping_sample/1.html').to_s
page = Nokogiri::HTML(html)
puts "Title : "+page.css('title')[0].text
puts "Article : "+page.css('div.em')[0].text

puts "===================="

html = HTTP.get('https://codingeverybody.github.io/scraping_sample/2.html').to_s
page = Nokogiri::HTML(html)
puts "Title : "+page.css('title')[0].text
puts "Article : "+page.css('div.strong')[0].text

 

댓글

댓글 본문
  1. 냥더쿠
    21-8-8 완료..
  2. 미뇨르
    210710 완료!!
  3. 정효빈
    신기하다....
  4. 드림보이
    잘 들었습니다...
  5. 후니
    완료
  6. 홍주호
    20.12.14
  7. 윤유상
    패키지매니저를 잘써야 파이썬과 루비를 잘 쓴다고 말할 수 있겠네요 ㅎㅎ 감사합니다!
  8. cgoing
    cgoing / 2020.09.29
  9. 허우룩
    2020.09.25
  10. PlayerSEAN
    쿠키앤크림 따라잡기
    2020/08/09 완료
  11. 쿠키앤크림
    2020/07/04 완료
  12. 김광현
    6/7완료
  13. oxugi
    2020/05/18 완료
  14. 클리퍼
    저의 경우는 http 패캐지는 잘 설치되었는데요.
    Nokogiri 패키지가 설치가 되지 않고 에러가 발생했습니다.
    에러 메시지를 살펴보니 Nokogiri 는 Ruby 버전 2.3 이상, 2.7 미만에서 사용하라고 나옵니다.
    (제 PC에 설치된 루비 버전은 2.7)

    그래서 루비 2.7버전을 제거하고 루비 2.6버전을 설치하고 진행하니
    http, Nokogiri 패키지 잘 설치되었습니다.
  15. asadal
    2020. 2. 21 완료. :)
  16. 썬제로
    감사합니다.
  17. 홍주호
    20190825 완료
  18. 허니비
    190808
  19. Hotak Choi
    19/05/12!
  20. 호두
    고맙습니다
  21. Onemeteorite
    수업 너무 좋습니다. 벌써 끝난다니 아쉽네요.
  22. kmw8462
    감사합니다.
  23. Seankim
    it so great!!
  24. yareuk
    2018-12-26
  25. 루이보스라떼
    2018.12.10.
  26. 김재형
    웹스크랩핑 정말 재미있네요
    감사합니다 이고잉님
  27. 닐반
    2018. 10. 15.
  28. 유닉스가이
    감사합니다.
  29. Ji Yeoun Park
    2018.7.03 사용할 기회가 왔으면 좋겠어요
  30. 정병찬
    2018 06 29
    수강완료
  31. 뭣도모르는 인턴개발자
    정말 감사합니다!! python 제대로 배우는거 같아요
  32. 이강현
    저도 윈도우를 쓰고 있는데 Python은 크롤링 작업이 되는데 Ruby에서는 잘 안되네요.
    gem install http 다운로드가 안되네요
    Native Extension 때문에 안되는데 이거 어떻게 해결해야 하나요?
    또한 윈도우는 방화벽 때문에 OpenSSL 에러도 발생합니다.

    이런 비슷한 문제를 해결하신 분이 있는지 궁금합니다.
  33. user1jena
    크롤링이라고 해서 굉장히 어렵고 복잡한 것으로만 생각하고 접하지 못하고 있었는데 그렇게 겁먹을 일이 아니었네요. 또한 다양한 패키지의 사용법을 찾아볼 수 있는 방법을 알 수 있는 강의였던 것 같아 많이 유용했습니다! 항상 감사드립니다!!^^
  34. gem install http 다운로드 되나요?
    Native extension 문제로 안된다고 뜨는데, 깃헙찾아보니까 다운그레이딩해야된다고 나와서
    저만 비슷한 문제를 가지고 있는지 궁금합니다.

    64 win7 쓰고 있습니다 ㅜ 해결되면 바로 글 올리도록 하겠습니다 ㅎ
  35. 언어정복자
    잘 들었습니다. 이고잉님 감사합니다.
  36. 배가본드
    완강했네요^^ 감사합니다.
  37. 아이
    거의 최종장이네요. 수고하셨습니다!
  38. GoldPenguin
    완료했습니다
  39. 김태윤
    잘 들었습니다.
  40. Seob
    수업 항상 잘듣고 가요 감사 합니다~
  41. 미림_likelion
    루비 & 파이썬 모두 완강했습니다. 이고잉님 감사합니다.
  42. 웹 크롤링 수업도 해주세요.
  43. Hyunjin Park
    완강입니다(파이썬 & 루비 만) 감사합니다
  44. 파이언
    웹어플리케이션 만들기에 이어서 파이썬&루비까지 완강했습니다.
    앞으로는 어려웠던 부분을 중심으로 복습하려구요!!

    감사하다는 말 남겨놓고 싶었습니다!! ^^

    늘건강하세요 이고잉님!! ~
  45. Huck
    여기까지 완주했습니다. 좋은 강의 정말 고맙습니다 :)
  46. shrimpking
    프로그래밍 지식이 하나도 없는 초보였는데 워낙 이해하기 쉽게 가르쳐주셔서 무사히 완주했네요 2주정도 걸린거같습니다 덕분에 이제 다른 심화강의들도 들으러 갈 용기가 생겼습니다 ㅋㅋ 감사합니다 ! 혹시 강의 다시 이어서 시작하시게 된다면 다시 또 들으러 올게요!!
  47. kariahn
    잘들었습니다. 좋은 강의 감사합니다.
  48. Taeung_Ha
    2017.04.22 다 들었다!!!!!!!1 헤헤헤헤헤헤헤헤헤헿ㅎㅎㅎ
  49. 한동진
    처음 들은 프로그래밍..막연했었는데,, 너무 잘 들었습니다. 감사합니다!
  50. adepter
    감사합니다 소중한 강의 너무 잘 들었습니다 ^^