饼干让我发疯,还是我疯了?

时间:2014-08-17 18:58:33

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

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

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

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

所以,问题:

  1. 有没有一种很好的方法可以使用浏览器驱动程序完成这项工作,而无需深入分析每个网站的JS,对其设置过程进行逆向工程,并在我们的代码库中重新实现它? (我猜:绝对没有)
  2. 如果没有,围绕这个问题的最佳方法是什么? (我的猜测:浏览器驱动程序,如Watir或Capybara)
  3. 如果我对问题#1和#2的猜测听起来不对,那我怎么能说服这位客户我知道我在说什么?
  4. 被雇用来开发一些我被雇佣开发的困难程度,然后忽略你的建议和洞察力是非常恼人的。我怎样才能更好地处理这个问题?

    对于Stack Overflow来说,这可能不是一个很好的问题,我为此道歉。我发现自己会来这里寻求帮助。你们通常都有很好的答案。如果你这样做,请提前感谢您的回答。

    编辑:为了更加清晰,问题在于速度与可靠性之间的关系。他想要最快的速度。显然,浏览器驱动程序不会是最好的速度,但在某种程度上,它可以保证"保持"坚持"给定的会话。机械化更加快速,但需要更多的努力才能使事情正常运转。考虑到我们正在与数十个网站合作,我认为最佳途径是牺牲速度和获得可靠性/准确性。你们都在想什么?

    最终,我正在寻找你的帮助,因为我对任何更好的论点感到茫然。我有很多,但已经筋疲力尽了,而且他似乎确信有一种方法可以做到这一点而不会牺牲速度或准确性(至少投入了大量的人力资源[a.k.a me])。我试过解释一下,我们可以有一个或另一个。基本上,就所知,我们只能有一个。我们应该选择的是准确性。我怎么能够以一种这个人可能会更敏锐地倾听的方式来论证这一点?

1 个答案:

答案 0 :(得分:1)

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

BTW,切换到Watir并不能提高您的可靠性,它只会让您更容易解决您的Cookie问题。根据我的经验,Mechanize通常更可靠。