2014-11-20 11 views
3

HTML5에 포함 된 Mircodata를 추출하려면 도움이 필요합니다. 내 목적은 Google의 도구처럼 웹 페이지에서 구조화 된 데이터를 얻는 것입니다 : http://www.google.com/webmasters/tools/richsnippets. 나는 많은 것을 수색했으나 가능한 해결책이 없다.자바에서 HTML의 마이크로 데이터 추출

현재 any23 라이브러리를 사용하고 있지만 설명서를 찾을 수 없으며 javadoc만으로는 충분한 정보를 얻을 수 없습니다.

any23의 Microdata Extractor를 사용하지만 세 번째 매개 변수 인 "org.w3c.dom.Document in"에서 멈추는 경우가 있습니다. HTML 컨텐트를 w3cDom으로 구문 분석 할 수 없습니다. JSlp뿐만 아니라 JTidy도 사용했지만이 라이브러리의 DOM 객체는 Extractor 생성자로 수정되지 않았습니다. 또한 Microdata Extractor의 두 번째 매개 변수에 대해서도 의심 스럽습니다.

누군가가 any23과 관련하여 도움을 주거나 다른 라이브러리가이 추출 문제를 해결할 수 있기를 바랍니다.

편집 : any23 명령 줄 도구와 같은 방법으로 해결책을 찾았습니다. 다음은 코드 스 니펫입니다.

HTTPDocumentSource doc = new HTTPDocumentSource(DefaultHTTPClient.createInitializedHTTPClient(), value); 
InputStream documentInputInputStream = doc.openInputStream(); 
TagSoupParser tagSoupParser = new TagSoupParser(documentInputInputStream, doc.getDocumentURI()); 
Document document = tagSoupParser.getDOM(); 
ByteArrayOutputStream byteArrayOutput = new ByteArrayOutputStream(); 
MicrodataParser.getMicrodataAsJSON(tagSoupParser.getDOM(),new PrintStream(byteArrayOutput)); 
String result = byteArrayOutput.toString("UTF-8"); 

이 코드 줄은 HTML에서 마이크로 데이터 만 추출하고 JSON 형식으로 작성합니다. 다른 사람 (Rdf, 거북이, ...) 출력 형식을 변경할 수있는 MicrodataExtractor 사용하려고했지만 입력 된 문서를 경우에만 XML 형식을 수락하는 것 같습니다. 그것은 HTML 문서를 넣을 때 "Document did not start"를 던졌습니다.

누군가 MicrodataExtractor를 사용하는 방법을 찾았 으면 여기에 답을 남겨주세요. 감사합니다.

+0

을 그래서 당신은 어떻게 * 사용 [any23의 마이크로 데이터 추출기]에 * 모르는 (https://any23.apache.org/dev-microdata-extractor.html)? 아니면 사용했는데 작동하지 않는 것이 있습니까? – unor

+1

any23의 Microdata Extractor를 사용했지만 세 번째 매개 변수 인 "org.w3c.dom.Document in"에서 멈추었습니다. html 콘텐츠를 w3cDom으로 구문 분석 할 수 없습니다. JSlp뿐만 아니라 JTidy도 사용했지만이 라이브러리의 DOM 객체는 Extractor 생성자로 수정되지 않았습니다. 또한 Microdata Extractor의 두 번째 매개 변수에 대해서도 의심 스럽습니다. 많은 감사합니다. D – user3500567

+0

좋아요, 질문에 포함 시켰습니다. 가능하다면 자유롭게 [편집]하고 자세한 내용을 포함하십시오. 이 작업을 수행 할 수있는 다른 도구를 추천하려면 자매 사이트 [softwarerecs.se] (스택 오버플로에서 도구 추천 요청은 일반적으로 주제와 다름)를 살펴보십시오. – unor

답변

0

xpath는 일반적으로 html 또는 xml을 사용하는 방법입니다.

이 한 번 봐 가지고 : How to read XML using XPath in Java

+0

빠른 답장을 보내 주셔서 감사합니다. 나는 Xpath를보고 나중에 결과를보고 할 것이다 :) – user3500567