주어진 웹 페이지에서 빈 템플릿을 생성 할 수 있도록 모든 HTML 요소 사이의 모든 텍스트를 무시하거나 제거해야합니다.HTML에서 텍스트 무시 :: TreeBuilder 출력 Perl
나는 펄 모듈 HTML :: TreeBuilder와 HTML :: Element를 사용하여 파싱 중이다.
설명서에 기록 된 ignore_text 메서드를 시도했지만 올바른 결과를 제공하지 않습니다.
나는 또한 DOMXpath를 사용하여 동일한 작업을 수행하고 결과를 관리하는 것이 너무 번거로운 것처럼 보였습니다. 정규 표현식이 효과가 있지만 최후의 수단입니다.
이것은 현재 기본 제공되는 코드의 일부입니다. 하단이 파일로 출력됩니다. 모든 코드가 작동합니다. 서식 파일을 생성 할 수 있도록 서식을 지정하면됩니다. 도움에 미리
my $url= "http://www.example.com";
my $page = get($url) or die $!;
my $tree = HTML::TreeBuilder->new_from_content($page);
$tree->parse_file($page);
$tree->ignore_text;
$tree->elementify;
open OUTPUT, "+>".$body;
my $output = $tree->as_HTML;
print OUTPUT $output;
close OUTPUT;
감사합니다!
편집 : 문제를 발견했습니다 - 텍스트 무시는 실제 파일에서 구문 분석 할 때만 작동합니다. 나는 임시 파일로 페이지를 저장해야만했다. 그런 다음 텍스트가없는 방식으로 결과를 출력했다. 그런 다음 파일을 삭제하기 위해 맨 아래에 unlink ($ tmp)를했다. 내 스크립트는 이후 데이터베이스를 읽고 쓰는 것보다 훨씬 복잡해졌으며 성가신 일종의 임시 파일을 만들어야 할 때마다 ...
답장을 보내 주셔서 감사합니다!
대신 다른 사람들이 혜택을 누릴 수 있도록 솔루션을 제공하거나 질문을 삭제하거나 (당신이 다음 받아 들일 수) 답변으로 솔루션을 게시 편집을 제안의 행운을 빕니다. SO의 작동 방식에 대해 자세히 알아 보려면 [FAQ] (http://stackoverflow.com/faq)를 읽어보십시오. :) –