xmllint로 성형한 후zen의 트렌드를 쉽게 얻을 수 있다

3565 단어 BashmacOSawktech

  • zen 트렌드가 XML RSS로 게시됨.
  • 때로는curl을 이용하여Mac의 단말기에서 간단하게 확인하고 싶을 때가 있다.
  • 따라서 이번에는curl,xmllint 등Mac에 설치된 명령만 사용하여 성형 및 취득합니다.
  • 컨디션

  • Mac 20.2.0
  • Darwin 20.2.0
  • 결실

  • 다음 명령(단일 기록기)을 통해zen 트렌드의 제목과 링크를 성형하여 얻을 수 있다.
  • curl -s 'https://zenn.dev/feed' | xmllint --format --nocdata - | grep -e '<title>' -e '<link>' | sed '1,4d' | awk -F '[<>]' '{if(NR%2) ORS=" "; else ORS="\n"; print $3}'
    
  • 상술한 출력 결과는 다음과 같다.
  • TypeScript******* https://zenn.dev/seya/articles/aa94166c977280
    React Compo ***** https://zenn.dev/takepepe/articles/division-labor-of-react
    Tailwind CSSからク**** https://zenn.dev/uhyo/articles/lightwindcss
    GitHubは禁止するべき? ************ https://zenn.dev/koduki/articles/4c3275af8e23d2
    Clubhouseも使っているらしいAgoraを使って簡単にビデオ通話 https://zenn.dev/arahabica/articles/0f54f2cdb1a29d
    
    ...................
    ...................
    
  • curl을 통해 데이터를 미리 얻는 방법은 다음과 같다.
  • ※ 가독성 때문에 파이프가 바뀌었습니다.
  • # curlのデータをローカルに保存
    curl -s 'https://zenn.dev/feed' -o trend.xml
    
    # ローカルデータからトレンドの検索
    xmllint --format --nocdata trend.xml |
    grep -e '<title>' -e '<link>' |
    sed '1,4d' |
    awk -F '[<>]' '{if(NR%2) ORS=" "; else ORS="\n"; print $3}'
    

    보태다


    데이터 가져오기

  • 트렌드 검색마다curl의 통신을 하지 않고cron(정시 실행)에서 로컬로 데이터를 저장합니다.
  • 또한 로컬 데이터를 참조합니다.
  • 데이터 정형

  • 개인이 알기 쉬운 관점에서 출발하여 공백분할과 2열 형식으로 출력한다.
  • CDATA 옵션

  • RSS의 규격상 CDATA를 사용하기 때문에 xmllint의 처리를 조사했다.
  • 조사 결과는 --nocdata 옵션으로 배제 처리할 수 있다.
  • --nocdata 사용 가능한 버전이 아니면awk내 또는sed에서 교환 처리됩니다.
  • 총결산

  • 상기 상황을 통해 알 수 있듯이 단말기의 간단한 확인에서 충분히 이용한다.
  • RSS로 제공되기 때문에 두 가지를 함께 사용하기로 결심했습니다.
  • 참고 자료

  • https://zenn.dev/zenn/articles/zenn-feed-rss
  • http://xmlsoft.org/xmllint.html
  • https://assimane.blog.ss-blog.jp/2011-09-14
  • 좋은 웹페이지 즐겨찾기