2012-07-24 3 views
1

나는 nokogiri를 사용하여 루비에서 스크레이퍼를 만들고 있는데, 브라우저가 소스를 파싱 할 때 소스와 돔을 파싱하여 생성 된 dom이 다른 경우가 있음을 알게되었습니다.html 소스 대 브라우저 DOM 다루기

예를 들어, 브라우저는 tbody 태그를 추가합니다. 문서가 제대로 구성되지 않았거나 javascript가 런타임을 변경하면 브라우저는 태그를 수정할 수 있습니다.

문제는 브라우저 DOM (이 단계에서는 요소 관리자 사용)에서 원하는 요소 경로를 얻고 있지만 소스를 구문 분석하여 DOM에서 해당 요소를 검색 할 때 이러한 차이로 인해 아무것도 발견되지 않습니다.

브라우저와 동일한 DOM을 사용할 수 있습니까? 그렇다면 어떻게해야합니까?

답변

0

브라우저를 사용하여 렌더링 된 소스에서 DOM을 가져올 수 있습니다. 헤드리스 또는 실제 브라우저를 구동 할 수있는 셀레늄, 웹킷 헤드리스, 폴터 지스트 등 여러 드라이버가 있습니다.

모든 브라우저는 공식 표준 구현이 없기 때문에 다른 버전을 렌더링하므로 사용자에게 가장 적합한 브라우저를 찾아야합니다.