문제

블로그 게시물에서 잘 작동하는 일반화 된 HTML 파서를 만들려고합니다. 특정 Entrie의 URL에서 구문자를 가리키고 게시물 자체의 깨끗한 텍스트를 되 찾으려고합니다. 내 기본 접근 방식 (Python의)은 BeautifulSoup / urllib2의 조합을 사용하는 것이었지만 괜찮습니다. 그러나 블로그 항목에 적절한 태그를 알고 있다고 가정합니다. 누구든지 더 나은 아이디어가 있습니까?

여기에 누군가가 확장 할 수있는 몇 가지 생각이 있습니다. 아직 구현할 수있는 지식/노하우가 충분하지 않다는 것입니다.

  1. UNIX 프로그램 'Lynx'는 블로그 게시물을 특히 잘 구문 분석하는 것 같습니다. 어떤 파서를 사용합니까? 아니면 어떻게 활용할 수 있습니까?

  2. 정크 광고 등을 자동으로 제거하는 서비스/파서가 있습니까?

  3. 이 경우, 블로그 게시물이 일반적으로 클래스 = "entry"또는 유사한 특정 정의 태그에 포함되어 있다는 것이 괜찮을 것입니다. 따라서, 그들 사이에 가장 깨끗한 텍스트가있는 묶는 태그를 발견 한 알고리즘을 만들 수있을 수 있습니까?

감사!

도움이 되었습니까?

해결책

소년, 내가 가지고 있니? 완벽한 당신을위한 솔루션.

ARC90의 가독성 알고리즘이 정확히이를 수행합니다. HTML 컨텐츠가 주어지면 메인 블로그 게시물 텍스트의 내용을 선택하여 헤더, 바닥 글, 탐색 등을 무시합니다.

다음은 다음과 같습니다.

며칠 안에 Perl 포트를 CPAN에 공개 할 것입니다. 완료.

도움이 되었기를 바랍니다!

다른 팁

주어진 페이지의 '노이즈'를 필터링하는 것을 구체적으로 보는 프로젝트가 있습니다. 일반적으로 이것이 수행되는 방식은 알고리즘에 주어진 유형의 페이지의 몇 가지 예를 제공하는 것이며, 그 사이에 어떤 부분이 변경되지 않는지 볼 수 있습니다. 즉, 알고리즘에 몇 가지 예제 페이지/게시물을 제공해야합니다. 모든 블로그 당신은 구문 분석하고 싶었습니다. 이것은 일반적으로 크롤링 할 작은 정의 된 사이트 세트가있을 때 잘 작동합니다 (예 : 뉴스 사이트). 알고리즘은 기본적으로 HTML에서 사용하는 템플릿을 감지하고 흥미로운 부분을 선택합니다. 여기에는 마법이 없으며 거칠고 불완전합니다.

이 alogrithm의 좋은 예는 EveryBlock.com 소스 코드에서 찾을 수 있습니다. 이동 EveryBlock.com/code "ebdata"패키지를 다운로드하고 "Templatemaker"모듈을보십시오.

그리고 나는 명백한 것을 진술한다는 의미는 아니지만 문제의 블로그에서 RSS를 사용하는 것을 고려 했습니까? 일반적으로 필드에는 전체 블로그 게시물, 제목 및 기타 메타 정보가 있습니다. RSS를 사용하는 것은 내가 언급 한 이전 솔루션보다 훨씬 간단합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top