HTML 페이지에서 데이터를 수집하고 데이터베이스로 출력하기 위해 스크래퍼를 작성하는 방법을 알아야합니다. 시작 위치를 알 필요가 없습니다. 당신이 이것에 저에게 줄 수있는 어떤 정보든지 중대 할. 또한, 당신은 여기에 너무 간단하거나 기본적인 수 없습니다 ... 감사합니다 :)Java를 사용하여 HTML 페이지에서 데이터를 가져 와서 데이터베이스에 출력
답변
먼저 과 같은 자바의 HTML
DOM
파서를 잘 알고 있어야합니다. 이렇게하면 HTML
파일에서 원하는 항목을 추출하는 데 도움이됩니다. 필수품을 얻은 후에 JDBC
을 사용하여 database
을 넣을 수 있습니다.
이 작업에 정규 표현식을 사용하려는 경우가 있습니다. 그러나하지 마라. HTML은 정규 언어가 아니므로 정규 표현식을 사용하는 것은 아닙니다.
웹 사이트 중 많은 부분이 잘못된 HTML 코드로 작성됩니다.
구문 분석 할 소스 코드를 정리하려면 HtmlCleaner과 같은 것을 사용하는 것이 중요합니다.
그러면 성공적으로 XPath를 사용하여 노드와 정규식을 추출하여 페이지에서 추출한 문자열의 특정 부분을 구문 분석 할 수 있습니다.
적어도 이것은 내가 사용한 기술입니다.
HtmlCleaner에서 반환 된 xHtml은 응용 프로그램과 구문 분석하려는 원격 페이지 사이의 일종의 인터페이스로 사용할 수 있습니다. 이것에 대해 테스트해야하며 원격 페이지가 변경된 경우 HtmlCleaner로 정리 한 새 xHtml을 추출하고 XPath 쿼리를 다시 적용하여 필요한 것을 추출한 다음 새 인터페이스에 대해 응용 프로그램 코드를 다시 테스트해야합니다.
MultiThreaded '스크래퍼'를 만들려는 경우 HtmlCleaner가 스레드 세이프가 아닙니다 (내 post here 참조).
이 post은 XPath를 사용하여 올바르게 형식이 지정된 xHtml을 구문 분석하는 방법에 대한 아이디어를 줄 수 있습니다.
행운을 비네! ;)
참고 : 당시에는 Scraper를 구현할 때 HtmlCleaner가 구문 분석하려는 페이지를 정규화 할 때 더 나은 작업을 수행했습니다. 경우에 따라 jTidy가 동일한 작업을 수행하지 못해서 시도해 볼 것을 제안합니다.
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을
를 작성하지 않도록하려는 경우 최대 절전 모드 사용 어쩌면 JDBC으로 DB에 삽입하거나 할 수 있습니다. 그런 다음 JDBC을 사용할 수 있습니다.
JSoup를 사용하여 스크레이퍼를 실행하고 있습니다. 멍청 하긴하지만 아직은 매우 직관적이고 쉽게 작업 할 수 있습니다. 또한 다양한 범위의 소스 또는 XML, RSS 등을 파싱 할 수 있습니다.
나는 거의 성공하지 못했던 htmlunit를 실험했습니다.
- 1. PHP를 사용하여 HTML 폼에서 값을 가져 와서 MySQL 데이터베이스에 저장하십시오.
- 2. 데이터를 가져 와서 HTML 테이블에 인쇄
- 3. Java를 사용하여 웹 페이지의 데이터를 가져 오려면 어디서부터 시작해야합니까?
- 4. xml에서 데이터를 가져 와서 페이지에서 나누는 방법 (페이지 매김)
- 5. 웹 페이지를 가져 와서 데이터베이스에 저장 하시겠습니까?
- 6. 인터넷 파일을 가져 와서 Java를 사용하여 File 객체로 만드시겠습니까?
- 7. XML 파일에서 데이터를 가져 와서 MySQL 데이터베이스에 저장하십시오.
- 8. XML에서 데이터를 가져 와서 데이터를 추출하는 방법
- 9. Java를 사용하여 데이터베이스에 이미지 삽입
- 10. Java를 사용하여 외부 데이터베이스에 연결
- 11. 및 HTML 테이블에서 텍스트 및 양식 데이터를 가져 와서 서블릿 용으로 사용하십시오.
- 12. java를 사용하여 xml 파일 데이터를 데이터베이스에 삽입 하시겠습니까?
- 13. HTML 양식에서 암호를 가져 와서 인쇄하는 방법
- 14. 웹 페이지에서 데이터를 가져 오는 중입니까?
- 15. 간단한 HTML을 사용하여 테이블에서 데이터를 가져 와서 도움이 필요합니다.
- 16. 양식에서 데이터를 가져 와서 db에 삽입하려고합니다.
- 17. HTML 페이지에서 배열 가져 오기?
- 18. 데이터베이스에서 데이터를 가져 와서 변수로 바꿈
- 19. 로그인 페이지에서 HTML 가져 오기
- 20. Jquery 웹 페이지에서 데이터 가져 오기 및 데이터베이스에 입력
- 21. Java를 사용하여 HTML 태그 추출
- 22. mysql 데이터를 가져 와서 해당 페이지를 생성하십시오.
- 23. mysql에서 데이터를 가져 와서 그에 따라 업데이트하십시오.
- 24. 어떻게 onCreate 메서드에서 데이터를 가져 와서 onClick
- 25. linq을 사용하여 두 테이블의 데이터를 가져 와서 결과를보기로 반환
- 26. HTML 페이지에서 MySQL DB로 데이터를 추가하는 방법
- 27. HTML 코드를 가져 와서 편집하고 웹보기로로드하십시오.
- 28. .html 페이지에서 div 가져 오기
- 29. 가져 오기 데이터를 mysql 데이터베이스에
- 30. html 페이지에서 csv 만들기
나는 전에 이런 일들을 해왔고 JTidy가 약간 깨지기 쉬운 것을 발견했다. 내가 tagsoup와 함께 갈 것 : http://home.ccil.org/~cowan/XML/tagsoup/ – radai