我正在開發一個屏幕抓取機器人,它使用Watir(ruby)來抓取特定的網頁搜索。 由於搜索結果以頁面形式提供,因此只能通過AJAX請求使用Watir。在Firefox中爲每個請求清除會話(Watir問題)
我的問題是現在要執行新的搜索,必須關閉瀏覽器才能清除搜索會話 - 否則初始搜索會否決GET參數中的更改。
是否有可能強迫Firefox清除每個請求上的會話?
此外,有沒有人有經驗通過Watir解決這些類型的問題?
謝謝!
我正在開發一個屏幕抓取機器人,它使用Watir(ruby)來抓取特定的網頁搜索。 由於搜索結果以頁面形式提供,因此只能通過AJAX請求使用Watir。在Firefox中爲每個請求清除會話(Watir問題)
我的問題是現在要執行新的搜索,必須關閉瀏覽器才能清除搜索會話 - 否則初始搜索會否決GET參數中的更改。
是否有可能強迫Firefox清除每個請求上的會話?
此外,有沒有人有經驗通過Watir解決這些類型的問題?
謝謝!
是它在某種程度上可以強制 Firefox來清除每個 要求會議上提出的?
我假定你的意思是瀏覽器啓動請求?
有兩個很好的方法,以避免餅乾問題:
(1)使用 「色情模式」:
還有一個「-private」命令行標誌。
(2)如果你想並行運行多個實例(我們運行50+!)使用不同的Firefox配置如下所述:
我們使用1 + 2組合,效果很好。
此外,沒有任何人有 經驗通過的Watir
解決這些類型的問題
對不起,沒有。我只能說我們使用iMacros for Firefox,並且從未遇到過Firefox的這種「GET」問題。
如果會話通過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
如果您想使用Watir,您可以按照http://watirwebdriver.com/中所述的方法搞亂配置文件。大多數瀏覽器默認情況下都會爲每個新實例獲取自己的配置文件。