2017-11-30 18 views
1

저는 대학용으로 "Scraper"를하고 있으며 "배경색 : #bebeff"가 포함 된 "tbody"를 모두 선택해야합니다. 나는 w3schools 셀렉터 중 몇 가지를 시도하고 그것을 할 수 없다. 그것을 할 수있는 방법이 있습니까?Selector 스타일로 찾기 스타일 스크래핑

Image

는 그런데, 루비와 기계화 보석 사용합니다.

이 시도 :

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

천만에요, 그것은 걸립니다 있기 때문에, 공간을 소요] "(공간) #bebeff"나는 후 의심을 가지고) –

+0

,하지만 만약 내가 그것을 넣어, 아무것도 반환하지 않습니다, 그냥 이해가 부탁, 문제는 이미 해결되었습니다. 인사말. –

+0

예, 여분의 공간을 사용했기 때문에'= '를 사용하여 정확한 스타일을 비교합니다. 그렇지 않으면 ~을 사용하여 하나의 공백으로 구분 된 문자열을 지정해야합니다 (예 : tbody [style ~ = " #bebe; "] ''(따옴표 필요) 및''tbody [style^="background : #bebeff "]' '도 작동합니다. –