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

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

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

    사용방법


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

  • 알고 싶은 것


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

  • 결론



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

    좋은 웹페이지 즐겨찾기