gpt4 book ai didi

ruby - Mechanize 的局限性是什么? mechanize 和 watir 之间的区别是什么

转载 作者:数据小太阳 更新时间:2023-10-29 06:57:39 26 4
gpt4 key购买 nike

我正在使用 mechanize 来抓取一些网页。

  • 我需要知道什么是 Mechanize 限制? Mechanize 不能做什么?
  • 它可以执行网页中嵌入的javascripts吗?
  • 我可以用它来调用 javascript 函数吗?我不认为它可以。我想Watir可以。
  • 它和watir有什么区别?

最佳答案

Mechanize 可以做很多事情。它使用 net/http,所以无论你用 net/http 能做什么,你都可以用 mechanize 来做。尽管根据他们的描述它支持更多:

The Mechanize library is used for automating interaction with websites. Mechanize automatically stores and sends cookies, follows redirects, can follow links, and submit forms. Form fields can be populated and submitted. Mechanize also keeps track of the sites that you have visited as a history.

查看此链接以获取有关将 javascript 与 mechanize 结合使用的一些信息:here

告诉您 mechanize 是否支持特定功能/任务而不是遍历所有内容会容易得多。你到底想做什么?

Javascript 是 mechanize 做不到的一件事。它大部分时间支持的一件事是显示 Javascript 链接。即使用 page.links.each {|link| puts link.text 也将显示 Javascript,但您将无法单击/选择它们。

简单来说,Watir 确实支持 Javascript。实际上是您的浏览器支持 javascript,Watir 控制浏览器。

Watir 运行一个真实的浏览器(FF、Chrome、IE)并以编程方式控制该浏览器。它的行为与用户访问网站时的行为完全一样。这就是使您能够使用 javascript 的原因。 Watir 只控制浏览器,而浏览器是发送请求、获取响应并呈现/处理所有这些的浏览器。您受到所用浏览器速度的限制。

另一方面,Mechanize 就像它自己的“浏览器”一样,比 Watir 快得多,因为它不呈现页面。它直接与服务器对话,并处理原始响应。 Mechanize 受您的连接速度限制。

当您需要观察和查看正在发生的事情、使用 javascript 或做任何与 GUI 相关的事情时,Watir 将被用于 Mechanize。 Mechanize 速度更快,有利于测试网站的实际结构。 (测试链接/登录/等)

关于ruby - Mechanize 的局限性是什么? mechanize 和 watir 之间的区别是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7983831/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com