【问题标题】:Selenium Webdriver vs MechanizeSelenium Webdriver vs Mechanize
【发布时间】:2015-10-10 09:25:16
【问题描述】:

我有兴趣为我经常访问的网站以某些形式自动输入重复数据。到目前为止,我所查找的能够以无头方式提供支持的工具可能是 Selenium WebDriver 和 Mechanize。

我的问题是,使用一次与另一次是否存在根本的技术差异? Selenium 主要用于测试。我还注意到有些人用它来做我正在寻找的事情,那就是自动化数据输入。在这种情况下,测试成为第二个好处。

是否有理由不使用 Selenium 来完成我想通过 Mechanize 做的事情?没关系,这两种工具都可以使用吗?

我不是问哪个更好,我问的是哪个工具适合这项工作。也许我不了解每个工具的用途背后的前提。

【问题讨论】:

    标签: selenium selenium-webdriver web-scraping mechanize webautomation


    【解决方案1】:

    这些是完全不同的工具,在网络抓取、网络自动化、自动数据提取范围内有些“交叉”。

    mechanize 是一个成熟且广泛使用的程序化网络浏览工具,具有许多内置功能,如 cookie 处理、浏览器历史记录、表单提交。这里要理解的关键是mechanize.Browser不是真正的浏览器,它不能执行和理解javascript,它不能发送通常需要形成网页的异步请求。

    这就是selenium 发挥作用的地方——它是一种浏览器自动化工具,也广泛用于网络抓取。 selenium 通常成为“后备”工具 - 当有人无法使用 mechanizeRoboBrowserMechanicalSoup (注意 - 另一种选择)对网站进行网络抓取时,例如,因为它是 javascript “沉重” ,选择通常是selenium。使用selenium,您还可以无头、自动化PhantomJS 浏览器,或拥有virtual display。作为一个普遍提到的缺点,经常提到性能 - 使用selenium,您正在以 Web 浏览器中的真实用户身份使用目标站点,它正在加载形成页面所需的其他文件、发出 XHR 请求、渲染等。

    这本身并不意味着你应该在任何地方使用selenium - 明智地选择工具,选择它是因为它更适合问题,而不是因为你更熟悉一种工具。 p>


    还请注意,您应该首先考虑使用 API(如果目标网站提供),而不是进行网络抓取。而且,如果涉及到它,请成为一名优秀的网络抓取公民:

    【讨论】:

    猜你喜欢
    • 2019-08-08
    • 1970-01-01
    • 2017-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-14
    • 2011-06-18
    • 2016-05-21
    相关资源
    最近更新 更多