我整個工作日都需要打開一個網頁。我使用Mechanize在Ruby中編寫了一個腳本,該腳本可以正常工作,但是腳本結束時頁面會關閉。機械手如何保持會話直到手動結束腳本?
我發現了一種使用無限循環和sleep(x)
的方法,但我仍然認爲這不是一個好方法。我擔心它會佔用太多內存。
有沒有辦法讓會話保持打開直到我手動結束腳本?
這裏是我的代碼:
require 'rubygems'
require 'mechanize'
def autoOpen (loginname, loginpasswd)
p = Mechanize.new
p.agent.http.verify_mode = OpenSSL::SSL::VERIFY_NONE
page = p.get('https://www.webpage.com/index.cgi')
logpage = page.form_with(:method => "POST")
logpage.username = loginname
logpage.password = loginpasswd
succpage = logpage.submit(logpage.button_with(:name => 'Submit'))
end
while 1 == 1
if false == system('ping www.webpage.com > tmp')
autoOpen('username', 'password')
end
sleep(1)
end
其實,這是行不通的,即使我添加了無休止的循環。
正如@theTinMan所說,機械化只是打開頁面並獲取內容/對象,它不能在頁面中停留。
有沒有解決方案?
「網頁需要打開」是什麼意思?機械化一次讀取頁面,並不保持打開狀態。它暫時緩存它所讀取的內容,因此您可以在頁面中找到元素,但它不是瀏覽器,也不像一個。 – 2013-02-26 06:30:26
這根本不佔用太多內存:'loop.do {sleep x}'。也許你應該展示一些代碼。 – pguardiario 2013-02-26 06:48:10
嗨@theTinMan這意味着,有一個代理(代理是一個網頁),我需要每天在瀏覽器中打開它。感謝您的解釋,是否有任何方法可以**持續**會議? – Marslo 2013-02-26 10:20:35