2011-01-21 81 views
2

我正在開發一個屏幕抓取機器人,它使用Watir(ruby)來抓取特定的網頁搜索。 由於搜索結果以頁面形式提供,因此只能通過AJAX請求使用Watir。在Firefox中爲每個請求清除會話(Watir問題)

我的問題是現在要執行新的搜索,必須關閉瀏覽器才能清除搜索會話 - 否則初始搜索會否決GET參數中的更改。

是否有可能強迫Firefox清除每個請求上的會話?

此外,有沒有人有經驗通過Watir解決這些類型的問題?

謝謝!

回答

1

是它在某種程度上可以強制 Firefox來清除每個 要求會議上提出的?

我假定你的意思是瀏覽器啓動請求?

有兩個很好的方法,以避免餅乾問題:

(1)使用 「色情模式」:

  • 大約在搜索欄中輸入:配置
  • 類型browser.privatebrowsing .autostart在過濾器字段中。
  • 雙擊上面的值並將其設置爲True。
  • 下次您將打開您的Firefox,它將處於私密模式!

還有一個「-private」命令行標誌。

(2)如果你想並行運行多個實例(我們運行50+!)使用不同的Firefox配置如下所述:

我們使用1 + 2組合,效果很好。

此外,沒有任何人有 經驗通過的Watir

解決這些類型的問題

對不起,沒有。我只能說我們使用iMacros for Firefox,並且從未遇到過Firefox的這種「GET」問題。

0

如果會話通過cookies在您的Firefox瀏覽器中維護,那麼這是可能的。

您必須在啓動之前從您的Firefox Cookie存儲庫中刪除Cookie。 Firefox訪問(如在我的Ubuntu和Mac)

~/.mozilla/firefox/12wwonrk.default/cookies.sqlite [in ubuntu] 

~/Library/Application Support/Firefox/Profiles/eox4ghka.default/cookies.sqlite [in mac] 

(之前的Firefox 3有人cookie.txt的,而不是源碼)

如果可以截斷存儲其餅乾sqlite(或txt),那麼cookies將不再存在。

由於您正在運行Watir,因此您最有可能使用紅寶石。因此,如果您可以在Watir :: Browser.new語句之前通過系統或%x [](或通過sqlite gem/lib的兼容命令)運行這些命令,希望您能完成。

./sqlite3 path/to/cookies.sqlite 
DELETE FROM moz_cookies; 
.quit 
0

如果您想使用Watir,您可以按照http://watirwebdriver.com/中所述的方法搞亂配置文件。大多數瀏覽器默認情況下都會爲每個新實例獲取自己的配置文件。

相關問題