我正在從論壇中提取數據。我的腳本based on工作正常。現在我需要從單個帖子中提取日期和時間(2009年12月21日,20:39)。我無法得到它的工作。我使用FireXPath來確定xpath。使用Ruby/Mechanize(和Nokogiri)從HTML中提取單個字符串
示例代碼:
require 'rubygems'
require 'mechanize'
post_agent = WWW::Mechanize.new
post_page = post_agent.get('http://www.vbulletin.org/forum/showthread.php?t=230708')
puts post_page.parser.xpath('/html/body/div/div/div/div/div/table/tbody/tr/td/div[2]/text()').to_s.strip
puts post_page.parser.at_xpath('/html/body/div/div/div/div/div/table/tbody/tr/td/div[2]/text()').to_s.strip
puts post_page.parser.xpath('//[@id="post1960370"]/tbody/tr[1]/td/div[2]/text()')
我所有的努力與空字符串或錯誤結束。
我找不到在Mechanize中使用Nokogiri的任何文檔。 The Mechanize documentation說,在頁面的底部:
你已經使用機械化導航到你需要刮掉頁面,然後利用引入nokogiri方法刮它之後。
但是有什麼方法?我在哪裏可以閱讀關於樣本並解釋語法的內容?我在Nokogiri's site上也找不到任何東西。
PS:這是一個通用教程,展示瞭如何找出正確的xpath:你並沒有從完全指定的xpath開始,因爲如果它不返回任何東西,你就不知道有什麼問題。從一般的東西開始,保證返回一些東西,然後繼續使它更具體,直到你有了你想要的一件事。通過逐步完成它,當它不起作用時,您知道這是您添加到xpath的最後一件事。 – 2010-01-22 03:57:18
@Wayne康拉德:嗨,韋恩,謝謝你的好教程。我會嘗試你說的,但我認爲,因爲我只想要元素的第一個實例,它會很容易和快速地使用絕對xpath。它會給我從數組中的第一項。 – Radek 2010-01-22 03:58:53
因此,即使您想要查看該問題的次數,您仍然可以執行所有這些步驟? – Radek 2010-01-22 04:03:42