【问题标题】:Clearing session in Firefox for every request made (Watir issue)为每个请求清除 Firefox 中的会话(Watir 问题)
【发布时间】:2011-01-21 08:49:11
【问题描述】:

我正在开发一个屏幕抓取机器人,它使用Watir (ruby) 来抓取特定的网络搜索。 使用 Watir 是因为搜索结果在页面中传递,只能通过 AJAX 请求获得。

我现在的问题是,要执行新搜索,必须关闭浏览器才能清除搜索会话 - 否则初始搜索会否决 GET 参数的更改。

是否有可能强制 Firefox 清除每个请求的会话?

另外,有没有人有通过 Watir 解决这类问题的经验?

【问题讨论】:

    标签: ruby firefox screen-scraping web-crawler watir


    【解决方案1】:

    如果会话是通过 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 时,您很可能正在使用 ruby​​。因此,如果您可以在 Watir::Browser.new 语句之前通过 system 或 %x[](或通过 sqlite gem/lib 的兼容命令)运行这些命令,希望您能完成。

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

    【讨论】:

      【解决方案2】:

      如果您想使用 Watir,您可以按照http://watirwebdriver.com/ 中的说明使用配置文件。默认情况下,大多数浏览器似乎都会为每个新实例获取自己的配置文件。

      【讨论】:

        猜你喜欢
        • 2011-11-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-11-05
        • 1970-01-01
        • 2016-01-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多