【问题标题】:Cookies driving me crazy, or am I crazy?饼干让我发疯,还是我疯了?
【发布时间】:2026-01-27 18:05:01
【问题描述】:

为客户处理一个项目,这项工作的一个方面是在一系列单独的网站上为单个用户利用会话。

不幸的是,突然之间,我在使用这种方法时遇到了无数问题。 Mechanize 不喜欢 cookie(很明显,因为涉及到 JS)。

下一个选择是利用 Watir 或 Capybara 之类的东西来解决这个问题。这是我最初做的,但我的客户对速度不满意。

所以,问题:

  1. 有没有一种好方法可以在不使用浏览器驱动程序的情况下完成这项工作,并且无需深入分析每个网站的 JS、对其 cookie 设置过程进行逆向工程并在我们的代码库中重新实现它? (我的猜测:绝对不是)
  2. 如果不是,解决此问题的最佳方法是什么? (我的猜测:浏览器驱动程序,例如 Watir 或 Capybara)
  3. 如果我对问题 #1 和 #2 的猜测对您来说是正确的,那么我该如何让这位客户相信我知道我在说什么?

受雇来开发我受雇开发的难度如此之大的东西,然后却忽略了您的建议和见解,这很烦人。我怎样才能更好地处理这个问题?

这对于 Stack Overflow 来说可能不是一个好问题,对此我深表歉意。我发现自己经常来这里寻求帮助。你们通常有很好的答案。提前感谢您的回答,如果您愿意的话。

编辑:更清楚一点,问题是速度与可靠性之一。他想要最快的速度。显然,浏览器驱动程序不会是最佳速度,但它确实在某种程度上“保证”了您可以“持久”给定会话。机械化的速度要快得多,但要让事情正常工作,需要更多的花哨的工作。考虑到我们正在与数十个网站合作,我认为最好的途径是牺牲速度和获得可靠性/准确性。大家觉得呢?

最终,我正在寻求您的帮助,因为我找不到更多好的论据。我有很多,但已经用尽了它们,他似乎相信有一种方法可以在不牺牲速度或准确性的情况下做到这一点(至少在投入大量人力资源 [a.k.a me] 的情况下)。我试过解释这一点,我们可以有一个或另一个。基本上,就所知,我们只能拥有一个。我们应该选择的是准确性。我怎样才能以这种人可能听得更敏锐的方式来论证这一点?

【问题讨论】:

    标签: ruby selenium-webdriver web-scraping mechanize watir-webdriver


    【解决方案1】:

    您可以随时使用 Watir 登录(我假设您无法解决 cookie 问题),然后将浏览器 cookie 加载到 Mechanize。我知道在其他机械化问题中有一些示例代码。

    顺便说一句,切换到 Watir 不会让您获得可靠性,它只会让您更轻松地解决 cookie 问题。根据我的经验,Mechanize 通常更可靠。

    【讨论】:

    • 感谢您的回答。感谢您的努力。不幸的是,我没有从中学到太多东西。我会接受您的回答,因为这是唯一的答案,我感谢您的努力。只是想做那个小笔记。再次感谢!
    最近更新 更多