Qiita의 기사 일람을 CLI로 취득/선택해 브라우저로 열람할 수 있도록 해 보았다

2602 단어 Qiita루비cli

백문은 보기에만





TL;DR


  • Ruby에서 콘솔 화면 제어
  • 스크래핑(Nokogiri)으로 기사 취득
  • 최소한의 기능을 구현 한 것만으로 추한 코드를 공개하고 있습니다 ...

  • 이게 뭐야?



    "매일처럼 열람하는 Qiita를 콘솔에서 열면 편리한 것은 아닐까?"
    라고 생각해, 어쩐지 만진 적이 있는 기술로 만들 수 있을 것 같았기 때문에 만들어 본 것입니다

    사용한 것


    ruby 2.3.3
    gem nokogiri
    gem curses
    

    어떻게 하는거야?



    화면 제어



    콘솔 화면 제어에는 curses라는 gem을 사용했습니다.

    이 curses 하지만, 별로 자료가 구르지 않았기 때문에,
    개인적으로 메모로 정리해 보았습니다.

    Ruby로 콘솔 화면을 제어합시다.

    정보 취득



    Qiita에서 정보를 얻기 위해 Nokogiri라는 gem을 사용했습니다.
    웹 사이트에서 정보를 추출하는 기술을 스크래핑이라고 하며 Nokogiri를 사용하여 스크래핑을 쉽게 할 수 있습니다

    동적 콘텐츠에서 정보를 추출하거나 보기 쉬운 형태로 성형하여 출력할 수 있으므로,
    주가 취득이나 뉴스 제목 목록을 취득하는 등 사용법은 다양합니다.
    필자는 과거에 대학 휴강 정보를 스크래핑하기도 했습니다.

    이 근처를 참고하면 좋다고 생각합니다.
    노코기리를 이용한 루비 스크래핑 [초보자 튜토리얼]
    필자도 신세를 졌습니다.

    다만, 스크래핑에는 법적인 이야기가 뒤따르므로 주의합시다.
    웹 스크래핑 법률 주위의 이야기를 하자!

    소스 게시/배포



    최소한의 기능 동작 확인을 한 단계의 코드를 공개하고 있습니다
    GitHub

    그래서 리팩토링도 하지 않고 매우 더러운 상태이므로 솔직히, 치부를 노출하고 있는 기분입니다...

    하지만, 추악한 코드를 노출하는 쪽이 많은 지적이나 어드바이스를 받을 수 있는 것은? 라는 변명도 제대로 생각하고 있습니다

    사용방법


    Nokogiri 및 Curses gem을 설치하고 qiita_cui.rb
    조작방법
  • p : 커서 이동 (위)
  • n : 커서 이동 (아래)
  • f : 다음 페이지
  • b : 이전 페이지
  • q : 종료
  • Enter : 결정
  • [Sort] : 게시 순서/최신 좋아하는 순서 전환
  • [Search] : 검색 단어 변경 (태그 검색이므로 현재 하나의 키워드 만)

  • 알고 싶은 것


  • 더 나은 구현
  • 고속화 기법
  • Ruby 실행 파일화 명령 하나로 이동하고 싶습니다 (별칭 제외).
  • 화살표 키로 입력
  • 이 법적으로 괜찮습니까? (스크래핑)

  • 결론



    필자, 아직 미숙자이므로, 여러가지 교수 주시면 좋겠습니다
    Qiita에는 API가 있으므로 스크래핑이 이용 약관에 다양하지 않으면 공개를 중지합니다.
    그렇다면 API가 공개되어 있기 때문에 그렇게 사용할 수 있습니다.

    좋은 웹페이지 즐겨찾기