2010-02-04 217 views
3

我試圖點擊主頁上的設置按鈕,但是當我做我得到這個頁面回:紅寶石在機械化實

#<WWW::Mechanize::Page 
{url 
    #<URI::HTTP:0x1023c5fc0 URL:http://www.facebook.com/editaccount.php?ref=mb&drop>} 
{meta} 
{title nil} 
{iframes} 
{frames} 
{links} 
{forms}> 

是..有點空!這些iframe和框架的東西可能存在一些問題嗎?

+0

我注意到它在https連接上做了某種重定向...這就是我想的問題..你認爲怎麼樣? – luca 2010-02-04 19:23:00

回答

2

Facebook將我重定向到:https://register.facebook.com/editaccount.php,我認爲這是最終目的地。假設WWW :: Mechanize設置爲遵循https重定向,那麼您也應該在那裏結束。

大多數Facebook像大多數現代網站都是由javascript生成的,我認爲WWW :: Mechanize無法應對,這可能是您的問題的根源。我建議嘗試追加「?_fb_noscript = 1」到您訪問的網址。這關閉了大部分的facebooks系統,並且應該可以讓你的小機器人更順暢的搭車。

(請記住,這只是一個想法,無論你做什麼都違反Facebook的使用政策,這會讓你成爲一個「壞蛋」。我不會寬恕這樣的壞話,並認爲壞人應該被迫早日上牀睡覺etc ... ad nauseum

+0

=)我只是想以編程方式關閉我的電子郵件通知,以便當我得到太多我禁用他們一段時間..再見,我沒有找到在機械化RDoc中提及https ..所以是它默認設置爲遵循https重定向? – luca 2010-02-04 20:53:18

3

正如roja提到的那樣,以下重定向可能是您需要的。下面是如何做到這一點的例子:

@agent = Mechanize.new 
@agent.redirect_ok = :all 
@agent.follow_meta_refresh = :anywhere 

那麼你幾乎可以忽視的事實是有重定向參與 - 機械化只會讓你在結果頁中。

+0

如果其他人提供了一個足夠充分的答案,最好編輯他們的答案(當代表的答案足夠高時),或者提供最正確的答案,而不必如此參照....即完成您自己的答案。 – 2012-10-03 12:51:06

+1

感謝您的提示;我已經將這個例子應用到了Roja的最初答案中。 – sarahg 2012-10-04 23:55:02