2017-02-23 1 views
0

nokogiri를 사용하여 HTML 문서의 영역을 좁힐 수 있습니다. nokogiri 개체에서 href를 추출 할 수 있어야하지만, 내 삶을 위해이 작업을 수행하는 방법을 파악할 수는 없습니다. row.css('td > b').to_html 메서드를 호출하면 문자열 형식의 예쁜 HTML 표현을 얻을 수 있습니다. 하지만 이것을 노코 기리 (nokogiri)를 사용하여 분석해야합니다. 내가로부터 URL을 추출 할 수 없어요Nokogiri XML 요소를 구문 분석하는 방법은 무엇입니까?

"<b><a href=\"/ShowTopic-g293766-i9284-k10224928-Tour_companies_for_botswana-Botswana.html\" onclick=\"setPID(34603)\">\ntour companies for botswana</a></b>" 

노코 기리 동등한은 다음과 같습니다 : 이

[#<Nokogiri::XML::Element:0x3fe972a9deb8 name="b" children=[#<Nokogiri::XML::Element:0x3fe972ad90a8 name="a" attributes=[#<Nokogiri::XML::Attr:0x3fe972ad8ff4 name="href" value="/ShowTopic-g317055-i11941-k10224606-United_Expeditions_tour_company_Maun-Maun_North_West_District.html">, #<Nokogiri::XML::Attr:0x3fe972ad8fe0 name="onclick" value="setPID(34603)">] children=[#<Nokogiri::XML::Text:0x3fe972ad8900 "\nUnited Expeditions tour company, Maun">]>]>]

코드 조각 위에서 같아요 노코 기리 XML 객체의 혼란 비트입니다. 하지만 href를 얻고 싶습니다. 도대체 어떻게해야합니까?

답변

1
row.css('td > b a').attr('href') 

이 작업을 수행해야합니다. How to access attributes using Nokogiri에 대해 더 읽어보십시오.

+0

나는 같은 생각을했지만 홀리 몰리는이 짜증나는 골격이다. 위의 제안과 함께 아래 오류가 발생합니다 :'TravelerParserTest # test_getSubforumPageThreads : NoMethodError : 정의되지 않은 메소드'attribute 'for nil : NilClass /Users/imtiazahmad/.rvm/gems/ruby-2.1.2/gems/nokogiri-1.6. 8.1/lib/nokogiri/xml/node_set.rb : 164 :'attr '에 ' –

+1

은 가장 좋은 방법은 빨판을 처리하는 방법을 사용하고 있습니다 tohh 해시로 변환하고 루비에 빠는 사람 –

관련 문제