2016-09-12 2 views
0

Nokogiri를 사용하여 this 페이지를 긁어서 클래스 이름이 "teaser"인 모든 요소를 ​​가져 오려고합니다. 어디 내가CSS 클래스를 통해 모든 요소를 ​​가져 오는 방법

teasers = doc.css('.teaser') 
teasers.count => 1 

: 노코 기리를 사용하는 경우

$(".teaser").length => 25 

그러나, 나는 첫 번째 티저를 얻을 : 나는 jQuery로 페이지를 선택하면

, 나는 25 개 요소가 볼 수 있습니다 잘못되어가는? 나는 모든 티저를 어떻게 얻습니까?

+0

"doc.to_html"의 출력이 표시되면 티저 요소가 하나만 나타납니다. – dnsh

+0

http://stackoverflow.com/questions/13789583/html-is-read-beforefully-loaded-using-open-uri-and-nokogiri – dnsh

답변

1

문서에 어떤 이유로 인해 null 바이트가로드되어 Nokogiri/LibXML에서 문서가 일부 완료된 것으로 가정합니다.

Null을 제거하기 위해 내용을 사전 처리하여 문제를 해결할 수 있어야합니다. page는 웹 페이지의 텍스트가 포함 된 경우 :

page.gsub! /\x00/, '' 

그런 다음 이전 page에 노코 기리를 사용합니다.

+0

@matt에게 감사합니다.이 기능은 완벽하게 작동했습니다. –