2017-11-30 11 views
1

私の大学では「スクレーパー」をやっているので、「背景色:#bebeff」を含むすべての「tbody」を選択する必要があります。私はw3schoolセレクタのいくつかを試してみましたが、私はそれをすることはできません。それを行う方法はありますか?ところでSelect by Selector Styleスクレイピング

Image

、私は、RubyでMechanizeの宝石を使用します。

これを試してみてください:

require 'mechanize' 
require 'csv' 

agent = Mechanize.new 
page = agent.get('http://www.rockauto.com/es/catalog/') 
page = page.link_with(:text => 'Español').click 
page = page.link_with(:text => 'FORD').click 
page = page.link_with(:text => '2012').click 
page = page.link_with(:text => 'F-150').click 
page = page.link_with(:text => "3.7L V6").click 
page = page.link_with(:text => "Freno y Maza de Rueda").click 
page = page.link_with(:text => "Pastilla de Freno").click 
page = page.search('[style~=bebeff]') 


puts page.inspect 

を私はいくつかの解決策があると願っています。

おはよう、ありがとうございます。

+0

あなたがいない '〜=どういたしまして' – pguardiario

答えて

0

各tbodyのスタイルは "background:#bebeff;"として設定されているので、=を試してみることができます。 ^=も機能します。

require 'mechanize' 
require 'csv' 

agent = Mechanize.new 
page = agent.get 'http://www.rockauto.com/es/catalog/' 
page = page.link_with(text: 'Español').click 
page = page.link_with(text: 'FORD').click 
page = page.link_with(text: '2012').click 
page = page.link_with(text: 'F-150').click 
page = page.link_with(text: '3.7L V6').click 
page = page.link_with(text: 'Freno y Maza de Rueda').click 
page = page.link_with(text: 'Pastilla de Freno').click 
page = page.search 'tbody[style="background: #bebeff; "]' 
p page.inspect 
+0

、 '* ='たい;) –

+0

私は後に、疑問を持っている "#bebeff;(スペース)"]、それはそれを取るので、それは、スペースをとります私はそれを置くと、何も返されない、私はちょうど問題を既に解決されていることを理解するために尋ねる。 ご挨拶。 –

+0

はい、それは余分なスペースを使い、 '='を使って正確なスタイルを比較します。そうでなければ〜を使って、空白で区切られた文字列を ''tbody [style〜=" #bebe; "] ''(引用符が必要です)、 '' tbody [style^= "background:#bebeff"]' 'も有効です。 –