programing

HTML과 Java를 효율적으로 해석하려면 어떻게 해야 하나요?

newsource 2022. 9. 27. 23:56

HTML과 Java를 효율적으로 해석하려면 어떻게 해야 하나요?

저는 제 업무 라인에서 HTML 해석을 많이 하고 있습니다.지금까지는 HtmlUnit 헤드리스 브라우저를 사용하여 해석 및 브라우저 자동화를 수행했습니다.

이제 두 작업을 분리하겠습니다.

HtmlUnit에서는 먼저 페이지를 로드하고 소스를 가져와 해석하는 데 시간이 많이 걸리기 때문에 가벼운 HTML 파서를 사용하고 싶습니다.

HTML을 효율적으로 해석할 수 있는 HTML 파서를 알고 싶습니다.필요합니다

  1. 스피드
  2. HtmlElement의 "id", "name" 또는 "tag type"을 사용하여 쉽게 찾을 수 있습니다.

더러운 HTML 코드가 지워지지 않으면 저는 괜찮습니다.HTML 소스를 정리할 필요가 없습니다.HtmlElements를 이동해 데이터를 수집할 수 있는 가장 쉬운 방법이 필요합니다.

셀프 플러그:저는 방금 새로운 Java HTML 파서 jsoup을 출시했습니다.내가 여기서 언급하는 이유는 네가 원하는 걸 할 수 있을 것 같아서야.

파티 트릭은 요소를 검색하기 위한 CSS 셀렉터 구문입니다.다음은 예를 제시하겠습니다.

String html = "<html><head><title>First parse</title></head>"
  + "<body><p>Parsed HTML into a doc.</p></body></html>";
Document doc = Jsoup.parse(html);
Elements links = doc.select("a");
Element head = doc.select("head").first();

자세한 내용은 Selector javadoc을 참조하십시오.

이것은 새로운 프로젝트이기 때문에, 개선을 위한 어떠한 아이디어도 환영합니다!

지금까지 본 것 중 최고는 HtmlCleaner입니다.

HtmlCleaner는 Java로 작성된 오픈소스 HTML 파서입니다.웹에서 발견된 HTML은 일반적으로 더럽고 형식이 잘못되어 추가 처리에 적합하지 않습니다.이러한 문서를 심각하게 소비하기 위해서는 먼저 뒤죽박죽을 정리하고 태그, 속성 및 일반 텍스트에 순서를 지정해야 합니다.지정된 HTML 문서에 대해 HtmlCleaner는 개별 요소의 순서를 변경하여 올바른 형식의 XML을 생성합니다.기본적으로는 대부분의 웹 브라우저가 Document Object Model을 작성하기 위해 사용하는 유사한 규칙을 따릅니다.그러나 사용자는 태그 필터링 및 밸런싱을 위한 사용자 지정 태그 및 규칙 집합을 제공할 수 있습니다.

HtmlCleaner에서는 XPath를 사용하여 임의의 요소를 찾을 수 있습니다.

기타 html 파서는 이 SO 질문을 참조하십시오.

HTML5 해석 알고리즘에 근거한 Validator.nu의 파서를 추천합니다.2010-05-03년 Mozilla에서 사용된 파서입니다.

언급URL : https://stackoverflow.com/questions/2168610/how-can-i-efficiently-parse-html-with-java