2010-03-18 3 views

답변

2

먼저 과 같은 자바의 HTMLDOM 파서를 잘 알고 있어야합니다. 이렇게하면 HTML 파일에서 원하는 항목을 추출하는 데 도움이됩니다. 필수품을 얻은 후에 JDBC을 사용하여 database을 넣을 수 있습니다.

이 작업에 정규 표현식을 사용하려는 경우가 있습니다. 그러나하지 마라. HTML은 정규 언어가 아니므로 정규 표현식을 사용하는 것은 아닙니다.

+0

나는 전에 이런 일들을 해왔고 JTidy가 약간 깨지기 쉬운 것을 발견했다. 내가 tagsoup와 함께 갈 것 : http://home.ccil.org/~cowan/XML/tagsoup/ – radai

0

웹 사이트 중 많은 부분이 잘못된 HTML 코드로 작성됩니다.
구문 분석 할 소스 코드를 정리하려면 HtmlCleaner과 같은 것을 사용하는 것이 중요합니다.
그러면 성공적으로 XPath를 사용하여 노드와 정규식을 추출하여 페이지에서 추출한 문자열의 특정 부분을 구문 분석 할 수 있습니다.

적어도 이것은 내가 사용한 기술입니다.

HtmlCleaner에서 반환 된 xHtml은 응용 프로그램과 구문 분석하려는 원격 페이지 사이의 일종의 인터페이스로 사용할 수 있습니다. 이것에 대해 테스트해야하며 원격 페이지가 변경된 경우 HtmlCleaner로 정리 한 새 xHtml을 추출하고 XPath 쿼리를 다시 적용하여 필요한 것을 추출한 다음 새 인터페이스에 대해 응용 프로그램 코드를 다시 테스트해야합니다.

MultiThreaded '스크래퍼'를 만들려는 경우 HtmlCleaner가 스레드 세이프가 아닙니다 (내 post here 참조).
post은 XPath를 사용하여 올바르게 형식이 지정된 xHtml을 구문 분석하는 방법에 대한 아이디어를 줄 수 있습니다.
행운을 비네! ;)

참고 : 당시에는 Scraper를 구현할 때 HtmlCleaner가 구문 분석하려는 페이지를 정규화 할 때 더 나은 작업을 수행했습니다. 경우에 따라 jTidy가 동일한 작업을 수행하지 못해서 시도해 볼 것을 제안합니다.

0

lobo browser API은 HTML 페이지를 긁어 모은 프로젝트에서 성공적으로 사용했습니다. lobo 브라우저 프로젝트는 브라우저를 제공하지만 API를 매우 쉽게 사용할 수도 있습니다. 또한 자바 스크립트를 실행하고 자바 스크립트가 DOM을 조작하면 DOM을 조사 할 때 해당 DOM도 DOM에 반영됩니다. 간단히 말해서 API를 사용하면 브라우저를 모방 할 수 있으며 쿠키와 함께 작업 할 수도 있습니다.

이제 HTML에서 데이터를 가져 오기 위해 HTML을 유효한 XHTML로 변환합니다. 당신은 use jtidy for this 일 수 있습니다. XHTML은 유효한 XML이므로 XPath를 사용하여 원하는 데이터를 쉽게 검색 할 수 있습니다. 원시 HTML의 데이터를 구문 분석하는 코드를 작성하려고하면 코드가 빨리 엉망이됩니다. 따라서 XPath를 사용합니다. 당신이 데이터를 일단

, 당신은 당신이 HTML에서 데이터를 스크랩 할 수 있습니다 JTidy를 사용하여 너무 많은 SQL을

0

를 작성하지 않도록하려는 경우 최대 절전 모드 사용 어쩌면 JDBC으로 DB에 삽입하거나 할 수 있습니다. 그런 다음 JDBC을 사용할 수 있습니다.

1

JSoup를 사용하여 스크레이퍼를 실행하고 있습니다. 멍청 하긴하지만 아직은 매우 직관적이고 쉽게 작업 할 수 있습니다. 또한 다양한 범위의 소스 또는 XML, RSS 등을 파싱 할 수 있습니다.

나는 거의 성공하지 못했던 htmlunit를 실험했습니다.

관련 문제