18 번째 수정본 소스 보기 : YahooPipes
마지막으로 [b]
-- Loading page list... --
내용출력
로그인[l]
Diary
[f]
최근변경내역
[r]
페이지목록[i]
횡설수설[2]
게시판[3]
링크
수정할 수 없습니다: YahooPipes 는 읽기 전용 페이지입니다.
== # yahoo pipe 란 == http://pipes.yahoo.com/pipes/ RSS 데이타를 가져와서, 제공되는 모듈들을 조립하여 데이타에 원하는 가공을 한 후 새로운 RSS로 출력해주는 서비스. 음, 한참 떠들썩할 때는 관심 없었는데, 이거 잘 쓰면 굳이 내가 끙끙대며 프로그램 짜지 않고 꽤 쉽게 [[RSS]]를 만들어낼 수 있겠다...고 생각을 했는데 막상 끄적거려보니 그냥 프로그래밍하는 게 나을 것 같기도 하고 -ㅅ-;;; 프로그래밍 경험이 전혀 없는 사람에게는 상당히 유용한 툴일 듯 하다. 단 HTML소스나 RSS소스를 보면서 "요걸 요렇게 고쳐주면 되겠군..."이라고 판단할 수 있어야 하겠고, 본격적인 조작을 하려면 [[정규표현식]]을 알아야 하는데 이게 초심자에게는 만만하진 않겠다. 얼핏 보니 [[Perl/정규표현식]]의 문법을 거의 동일하게 쓸 수 있는 듯 하다. 각각의 모듈에다가 주석을 달 수 있으면 나중에 수정할 때나 다른 사람이 만든 파이프를 볼 때 이해하기 더 쉬울텐데 그럴 수가 없어서 아쉽다. == # 만들어보자 == === # 단순한 포워딩 === 아마도 제일 단순한 형태. * 원본 피드: http://feeds.oreilly.com/oreilly/perl O'Reilly의 Perl관련 RSS 희한하게 [http://hanrss.com 한RSS]에서 저 피드를 등록을 하려고 하면 제대로 분석이 안 되는지 에러가 나면서 등록이 되지 않는다. 혹시나 해서 이 RSS를 고스란히 받아서 그대로 내보내주는 파이프를 만들어 봄: * 완성된 파이프: http://pipes.yahoo.com/raymundo/oreillynews_perl (yahoo 아이디가 있어야 하고, IE6에서는 안 보임) || Upload:pipe_simple_forwarding.png || || Sources 카테고리의
모듈 -> Pipe Output || 결국 아무것도 변경하지 않고 원래의 피드를 그대로 사용하는 셈인데, (구체적인 포맷은 파이프를 거치면서 바뀌어있음) 이건 등록이 된다. :-D === # 항목의 값을 외부 입력으로 받음 === 위의 파이프에서, 원본 피드를 고정하는 게 아니라 사용자가 입력한 값을 받아서 처리하게 한다. * 완성된 파이프: http://pipes.yahoo.com/raymundo/simple_forwarding || Upload:pipe_simple_forwarding_user_input.png || || User Inputs-
-> Sources-
-> Pipe Output || 이 파이프를 실행하면 "Feed URL"을 입력받은 후에 그 값을 원본 피드의 주소로 지정하여 처리한다. 그 결과를 RSS로 만들 경우는 RSS주소의 뒷부분에
&feedurl=입력한주소
형태로 덧붙는다. "feedurl"은 모듈에서 "Name"항목에 넣어준 값. === # 뉴스그룹에서 특정 작성자의 포스팅만 골라내기 === * 원본 피드: http://groups.google.com/group/comp.lang.perl.misc/feed/rss_v2_0_msgs.xml?num=100 - comp.lang.perl.misc NewsGroup의 새 포스팅 RSS 이 그룹에는 글이 너무 많이 올라와서 다 챙겨보기 힘들다. 보통은 제목을 쓱 보고 골라서 보는 편이다. 그런데 특정한 조건에 해당되는 포스트, 예를 들어 어떤 단어가 들어가 있다던가, 작성자가 특정인물인 경우만 따로 RSS로 만들어 보고 싶다면: * 완성된 파이프: http://pipes.yahoo.com/raymundo/comp_lang_perl_misc_author_filter ** author 필드에 "Randal L. Schwartz" 또는 "PerlFAQ Server"가 들어가 있는 RSS 아이템들만 추려낸다 || Upload:pipe_author_filter.png || ||
-> Operators-
-> Pipe Output || === # 댓글 수가 많이 달린 게시물만 골라내기 === * 원본 피드: http://feeds2.feedburner.com/Clien--free - [[클리앙]] 자유게시판 RSS. [[주인장]]이 [[Perl]]로 작성한 스크립트를 사용하여 클리앙 게시판 목록을 보고 RSS 피드로 만들어서 사용하고 있었고, 댓글이 많이 달린 게시물만 따로 추려서 별도의 RSS도 만들었는데, 이걸 파이프로 만들어 봄: * 완성된 파이프: http://pipes.yahoo.com/raymundo/clien_hot_topics || Upload:pipe_condition_filter.png || *
: 원본 피드를 가져오고 * Operators-
: 피드 안에 있는 title 필드를 복제해서 comments 필드라고 이름을 붙임 * Operators-
: comments 필드, 즉 원래 title 필드에는 글제목 뒤에 댓글 수가 "
[숫자]
"형태로 붙어 있다. 이것을 정규표현식 치환을 사용하여 숫자만 뽑아낸다. ** 예: ''안녕하세요 [17]'' 에서 ''17'' 만 남김 *
: comments 필드의 값이 지정된 숫자보다 큰 아이템만 골라내어 Pipe Output으로 보낸다. ** 이 때 기준이 되는 숫자는 사용자 입력으로부터 받는다. User inputs-
모듈을 써서 숫자를 받고, Number-
모듈을 써서 그 숫자에서 1을 빼어서 Filter 모듈로 넘겨준다. === # 둘 이상의 피드를 합쳐서 하나의 피드로 만들기 === 아주 간단하게 유용한 피드를 만들 수 있는 방법 중 하나. * 원본 피드: http://cartoon.media.daum.net/series/rss/ikki.xml - 미디어 다음 만화속 세상 중 "이끼" RSS * 원본 피드: http://cartoon.media.daum.net/series/rss/flying.xml - 마찬가지로 만화속 세상 중 "비행접시" RSS 다음의 [http://cartoon.media.daum.net/ 만화속 세상] 같은 경우는 개별 작품마다 RSS를 제공한다. 물론 이것도 매우 감지덕지한 일이다. 그렇지만 RSS리더에 일일이 만화마다 따로 등록하자니 등록된 피드 갯수가 많아져서 정신없다. 두 피드를 합쳐서 하나의 피드로 만들어보자: * 완성된 파이프: http://pipes.yahoo.com/raymundo/union_1 || Upload:pipes_union_1.png || || 두 개의
-> Operators-
-> Pipes Output || * Union 모듈을 사용하여 두 개 이상의 피드를 합쳐서 하나의 피드로 만든다. === # 여러 피드를 합치기 - 루프 모듈을 사용하는 예 === == # 참고 == * [http://syaa.tistory.com/104 입맛에 맞게 재구성해서 사용하는 RSS - YAHOO PIPE -- 취미생활 블로깅 ::] * [http://1kko.com/entry/야후-파이프를-이용해서-네이버-웹툰을-RSS-Feed로-받아보기 이코의 세상 :: 야후 파이프를 이용해서 네이버 웹툰을 RSS Feed로 받아보기] * [http://1kko.com/entry/야후-파이프-좀더-자세하게 이코의 세상 :: 야후 파이프. 좀더 자세하게] == # Comments ==
----
---- [[컴퓨터분류]]
YahooPipes
페이지로 돌아가기 |
다른 수정본 보기