2012-09-24 2 views
3

Mechanize를 사용하여 많은 웹 페이지를 크롤링하고 메타 태그에 문제가 있습니다.Ruby Mechanize 구문 분석 메타 태그

<meta property="og:longitude" content="-74.0100365"> 
<meta property="og:latitude" content="40.7199929"> 

은 내가 og:longitudeog:latitude 매개 변수를 싶어. 제가 시도한 것은 작동하지 않습니다. 아마도 페이지가 동적으로로드되었거나 무언가 때문일 것입니다.

a = Mechanize.new { |agent| 
    agent.user_agent_alias = 'Mac Safari' 
} 

a.get(some_web_page) do |page| 
    puts page.search("latitude").first.text 
    puts page.search("longitude").first.text 
end 

답변

6

그것은 다음과 같습니다 : 당신이 텍스트가 아닌 원하는 속성 내용의 :content 때문에

page.at('meta[property="og:longitude"]')[:content] 
page.at('meta[property="og:latitude"]')[:content] 

참고 이것은 내가 현재 사용하고 코드입니다.

+0

위대한 작품. 고맙습니다! – sybohy

+1

이전에는 작동했지만 이제는 오류가 발생합니다. "*** NoMethodError 예외 : 정의되지 않은 메서드'[] 'for nil : NilClass" – Dusht