一位朋友問我是否可以幫助他自動化一些耗費大量時間的事情。他在網上評論文章,基本上有一個網站,他登錄並坐在刷新它的網頁上,直到出現一些數據(新的文章被分級)。與其做這件事,他希望在有新事物需要他關注時通知他們。什麼是正確的工具來自動刷新+刷新頁面後面的頁面?
沒有API可用,需要登錄才能訪問網站。你認爲什麼是這份工作的正確工具?
我會發表我的想法作爲答案,但我很好奇大家的建議。
編輯:他正在運行Windows(Windows Vista)。只要網站運行,瀏覽器並不重要。
一位朋友問我是否可以幫助他自動化一些耗費大量時間的事情。他在網上評論文章,基本上有一個網站,他登錄並坐在刷新它的網頁上,直到出現一些數據(新的文章被分級)。與其做這件事,他希望在有新事物需要他關注時通知他們。什麼是正確的工具來自動刷新+刷新頁面後面的頁面?
沒有API可用,需要登錄才能訪問網站。你認爲什麼是這份工作的正確工具?
我會發表我的想法作爲答案,但我很好奇大家的建議。
編輯:他正在運行Windows(Windows Vista)。只要網站運行,瀏覽器並不重要。
我的想法是爲Firefox的Greasemonkey插件編寫一個腳本。
基本上他會登錄到頁面,並打開腳本,這將不斷刷新和擦洗網站的新項目。如果發現一些信息,它會彈出消息並播放噪音(或類似的東西)。
我從來沒有使用過Greasemonkey,但它看起來像這樣應該很簡單。
這聽起來像一個好計劃 – 2009-06-03 18:32:27
您可以使用Waitr(see)編寫一個小的Ruby腳本,它實際上會使用瀏覽器並允許您抓取數據或scrubyt(examples)。
這是scrubyt的樣子。我建議你做一些事情,比如生成電子郵件或IM消息,但可以做任何你喜歡的事情。安排它在某處CRON運行 - 這種方法的好處是,如果他的電腦處於開啓狀態,瀏覽器處於打開狀態等,則無關緊要。
#simple ebay example
require 'rubygems'
require 'scrubyt'
ebay_data = Scrubyt::Extractor.define do
fetch 'http://www.ebay.com/'
fill_textfield 'satitle', 'ipod'
submit
record "//table[@class='nol']" do
name "//td[@class='details']/div/a"
end
end
puts ebay_data.to_xml
Watir是一個好主意,但他不是一個開發人員,所以安裝紅寶石會有點矯枉過正(但也許不是)。 – 2009-06-03 18:38:36
紅寶石腳本可以運行在任何地方,只需發郵件給他... – cwash 2009-06-03 18:40:16
哈哈,這是一個很好的觀點。儘管如此,他還是要給我他的登錄信息。 – 2009-06-03 18:41:19
什麼平臺?視窗?什麼瀏覽器? – 2009-06-03 18:19:09
好點,編輯 – 2009-06-03 18:23:43