2016-09-12 20 views
0

thisページをノコギリを使用してスクレイプして、クラス名が「ティーザー」のすべての要素を取得しようとしています。CSSクラスを使用してすべての要素を取得する方法

私はjQueryを使ってページをチェックすると、私は25個の要素があります見ることができます:私は

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

:鋸山を使用している場合しかし、私は最初のティーザーを取得

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

は、間違っている?どのように私はすべてのティーザーを手に入れますか?

+0

"doc.to_html"という出力が表示された場合、ティーザー要素は1つだけ表示されます。 – dnsh

+0

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

答えて

1

何らかの理由で、そのドキュメントのロードにnullバイトが含まれているように見えます。このため、Nokogiri/LibXMLはドキュメントが途中まで終了したとみなしています。

コンテンツを前処理してヌルを削除することで修正する必要があります。 pageは、Webページのテキストが含まれている場合:

page.gsub! /\x00/, '' 

そして、以前のようにpageに鋸山を使用しています。

+0

ありがとう@matt、これは完全に機能しました。 –

関連する問題