我正在开发一个使用Watir(ruby)抓取特定网络搜索的屏幕抓取机器人。 Watir用于搜索结果以页面形式提供,仅通过AJAX请求提供。
我的问题是,为了执行新的搜索,必须关闭浏览器才能清除搜索会话 - 否则初始搜索会否决GET参数的更改。
是否有可能迫使Firefox在每次请求时清除会话?
此外,有没有人有通过Watir解决这类问题的经验?
谢谢!
答案 0 :(得分:1)
是否可能以某种方式强迫 Firefox清除每个会话 请求?
我认为你的意思是浏览器启动请求?
有两种避免cookie问题的好方法:
(1)使用“色情模式”:
还有一个“-private”命令行标志。
(2)如果您想要并行运行多个实例(我们运行50+以上!)使用不同的Firefox配置文件,如下所述:
我们使用1 + 2组合,效果很好。
此外,有没有人 解决这些问题的经验 问题来自Watir
抱歉,没有。我可以说的是,我们使用iMacros for Firefox,从未在Firefox上遇到过这样的“GET”问题。
答案 1 :(得分:0)
如果会话是通过Firefox浏览器中的cookie维护的,那么就可以。
您必须先从firefox Cookie存储库中删除Cookie,然后才能启动它们。 Firefox存储其cookie(截至我的ubuntu和mac)
~/.mozilla/firefox/12wwonrk.default/cookies.sqlite [in ubuntu]
或
~/Library/Application Support/Firefox/Profiles/eox4ghka.default/cookies.sqlite [in mac]
(之前的Firefox 3是cookies.txt而不是sqlite)
如果您可以截断sqlite(或txt),那么cookie将不再存在。
当你在运行Watir时,你最有可能使用红宝石。所以,如果你可以在Watir :: Browser.new语句之前通过系统或%x [](或通过sqlite gem / lib的兼容命令)运行这些命令,希望你能完成。
./sqlite3 path/to/cookies.sqlite
DELETE FROM moz_cookies;
.quit
答案 2 :(得分:0)
如果您想使用Watir,可以按照http://watirwebdriver.com/中的描述搞乱配置文件。大多数浏览器默认情况下都会为每个新实例获取自己的配置文件。