php 파일에 어떻게 보일러파이프를 깔면 좋을까요?

에버노트의 웹클리핑은 웹에서 본 글의 본문만 잘 추려서 에버노트에 정리할 수 있도록 도와줍니다. 그러나 저는 에버노트가 아닌 다른 곳에 글을 저장하고 싶었습니다. 그래서 snoopy라는 라이브러리(?)를 가져와서 제게 맞는 형태의 html 파일로 출력할 수 있도록 php 파일을 만들어서 사용하고 있는데, 스누피에는 좀 한계가 많이 있더군요.

똑똑한 뉴스 서비스 만들기라는 글에서 boilerpipe라는 것을 알게되었고,  http://boilerpipe-web.appspot.com/ 에서 보여주는 API를 활용하면 스크랩하고 싶은 글의 본문을 긁어오는 것은 스누피보다 훨씬 잘해주는데요. 문제는 제 지식이 짧아서 보일러파이프를 php 파일과 어떻게 연결하며 되는지 막막하다는 점입니다.

예전에 스누피로 만든 php 페이지를 구동하는 javascript에는 마우스로 긁어놓은 부분을 제목으로 가져오도록 하였고, javascript:location.href='scrapper.php?surl='+encodeURIComponent(location.href)+'&stitle='+window.getSelection()

scrapper.php 안에 스누피가 동작해서 본문을 추출하면 아래와 같이 본문이 표시되도록 되어 있어요.

$html = file_get_contents($scrap_url); 스크랩할 url의 내용을 읽어서 $html에 할당함.

$extractor = new ContentExtractor(); 변수 초기화

$content = $extractor->extract($html); 해당 url에서 본문을 추출한다.

echo $content; 화면에 뿌려준다.

php로 만들어진 것이라 쉽게 html 페이지로 출력할 수 있었는데요. 이렇게 본문을 표시해주는 부분을 어떻게 바꾸면 보일러파이프의 api를 사용하면 보이는 페이지를 제 웹사이트로 가져올 수 있을까요?

제가 필요한 부분을 제대로 모르는 상황에 질문이 제대로 전달이 되려나 모르겠군요. 하여간 보일러파이프 소스를 제 사이트에 설치하지 않고 보일러파이프의 api에서 구현해주는 것만 가져오는 방법이 있으면 알려주시면 좋겠습니다.

문제 해결의 실마리 발견!!

기존에 snoopy에서 사용하는 $scrap_url 변수를 boilerpipe API의 주소로 변경해서 글을 긁어오는 방식으로 기본적인 것은 성공. 그러나 사이트에 따라서 어떤 경우는 스누피가 더 나은 경우도 있고, 어떤 경우는 보일러파이프가 나은 경우도 있어서 두가지를 혼용해서 사용해야할 것 같군요.

$scrap_url = "http://boilerpipe-web.appspot.com/extract?url=" . $scrap_url . "&extractor=ArticleExtractor&output=htmlFragment&extractImages="; 본문 추출할 url과 보일러파이프 API url을 조합한다.

$html_boilerpipe = file_get_contents($scrap_url); 만들어진 url의 내용을 $html에 저장한다.

$extractor = new ContentExtractor(); 변수를 초기화한다.

$content_boilerpipe = $extractor->extract($html_boilerpipe); $html에서 본문을 추출한다.

echo $content_boilerpipe; 추출된 본문을 화면에 표시한다.

2015/11/25 추가.
자바스크립트 웹페이지 읽기에 간단한 스크립트가 보인다. 이것을 그냥 기존에 쓰던 php 파일에 넣어주거나 자바스크립트로 웹페이지 읽어오기를 응용하면 보일러 파이프 API 에서 가져온 것을 기존 스누피로 만든 것과 조합할 수 있을 것 같다.

Advertisements
이 글은 기타등등 카테고리에 분류되었습니다. 고유주소 북마크.

php 파일에 어떻게 보일러파이프를 깔면 좋을까요?에 1개의 응답

  1. ks댓글:

    안녕하세요. 저는 연구 목적으로 신문기사를 수집하고 있는 연구자입니다. 혹시 괜찮으시다면 보일러파이프를 어떻게 이용하셨는지 전체적인 코드도 부탁드려도 될까요? 보일러파이프 때문에 Java를 조금이라도 배워야하나 생각하고 있었는데요, 만약 php로 된다면 정말 좋을 것 같습니다. 메일주소 남기고 가겠습니다. 조금이나마 도움주신다면 대단히 감사드리겠습니다.

    • naramoksu댓글:

      ks님. 저도 자바 관련된 부분은 잘 몰라서 필요하신 부분은 어쩌면 본문에 있는 똑똑한 뉴스 만들기 글을 쓰신 분에게 문의하시는 것이 나을 것 같습니다. 제가 사용한 방법은 본문에 있는 것처럼 snoopy.php 에서 scrap_url 부분을 보일러파이프 api의 url과 조합한 방식이라서 보일러파이프를 제대로 쓰는 것은 아닙니다.

      혹시 보일러파이프와 관련된 부분을 좀 더 찾으시면 제게도 좀 나눠주시면 좋겠습니다. ^^

      이메일은 이전 댓글에서 확인할 수 있기 때문에 이메일 주소 남기신 댓글은 삭제하였습니다.

  2. 핑백: Javascipt를 공부해야할까? | Memo 5

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

%s에 연결하는 중