2011-09-14 4 views
0

기계화 보석을 사용하여 HTML 콘텐츠를 구문 분석합니다.문제가 발생 했습니까?

<Nokogiri::XML::Text:0x3fcdb399c3dc "\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t">, #<Nokogiri::XML::Element:0x3fcdb399c300 name="a" attributes=[#<Nokogiri::XML::Attr:0x3fcdb399c29c name="href" value="http://www.example.com/getaway-8774-yatra-september-deal">] children=[#<Nokogiri::XML::Text:0x3fcdb399bdd8 " ">, #<Nokogiri::XML::Element:0x3fcdb399bcfc name="span" attributes=[#<Nokogiri::XML::Attr:0x3fcdb399bc98 name="style" value="color: #000">] children=[#<Nokogiri::XML::Text:0x3fcdb399b7d4 "international holiday package bookings at Yatra.com ">]>, #<Nokogiri::XML::Text:0x3fcdb3dd8770 " ">]>, #<Nokogiri::XML::Text:0x3fcdb3dd6df8 "\r\n\t\t\t\t\t\t\t\t\t\t\t\t">] 
,536,913,632 - :

agent.get("http://www.example.com/").search(".sidebar-deal-excerpt").first 

나에게이 부여 터미널에서이 발사 : 터미널

agent.get("http://www.example.com/").search(".sidebar-deal-excerpt").first.children 

에이 발사

<Nokogiri::XML::Element:0x3fcdb3add700 name="div" attributes=[#<Nokogiri::XML::Attr:0x3fcdb3add570 name="class" value="sidebar-deal-excerpt">] children=[#<Nokogiri::XML::Text:0x3fcdb3add0ac "\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t">, #<Nokogiri::XML::Element:0x3fcdb3adcfd0 name="a" attributes=[#<Nokogiri::XML::Attr:0x3fcdb3adcf6c name="href" value="http://www.example.com/getaway-8774-yatra-september-deal">] children=[#<Nokogiri::XML::Text:0x3fcdb3adcaa8 " ">, #<Nokogiri::XML::Element:0x3fcdb3adc9cc name="span" attributes=[#<Nokogiri::XML::Attr:0x3fcdb3adc968 name="style" value="color: #000">] children=[#<Nokogiri::XML::Text:0x3fcdb3dd6b50 " international holiday package bookings at Yatra.com ">]>, #<Nokogiri::XML::Text:0x3fcdb3dd5f5c " ">]>, #<Nokogiri::XML::Text:0x3fcdb3dd5a98 "\r\n\t\t\t\t\t\t\t\t\t\t\t\t">]> 

것은 저에게이 있습니다 10

나는 이것으로부터 URL을 가져오고 싶습니다. 나는이 속성 값

을 얻으려면 즉

http://www.example.com/getaway-8774-yatra-september-deal 

사람이 구문 분석에 나를 도울 수 있습니다.

답변

1

방법에 대해 : (안된)

agent = Mechanize.new 
page = agent.get("http://www.snapdeal.com/") 
page = agent.get("http://www.snapdeal.com/") # yeah, you've got to call it twice for this site 
urls = page.search(".sidebar-deal-excerpt a").collect{|a| a.attributes["href"].value } 
+0

더는 작동하지 않습니다 .. 여기에 내가 분석하고자하는 웹 사이트입니다.하지 snapdeal.com의 사이드 바 –

+0

위의 코드를 참조하십시오. 가치를 얻으려면 a.attributes [ "href"] 값 – Candide

+0

을 사용해야합니다.이 사이트에 대해 두 번 전화해야합니다. 기억할 구체적인 것은 .. –

관련 문제