这些是完全不同的工具,在网络抓取、网络自动化、自动化数据提取范围内有些“交叉”。
mechanize
是一个成熟且广泛使用的程序化网络浏览工具,具有许多内置功能,如 cookie 处理、浏览器历史记录、表单提交。这里要理解的关键是它mechanize.Browser
不是真正的浏览器,它不能执行和理解 javascript,它不能发送通常需要形成网页的异步请求。
这就是selenium
发挥作用的地方 - 它是一种浏览器自动化工具,也广泛用于网络抓取。selenium
通常成为“后备”工具 - 当某人无法使用mechanize
orRoboBrowser
或MechanicalSoup
(注意 - 另一种选择)对网站进行网络抓取时,例如,它是 javascript “沉重”,选择通常是selenium
. selenium
您还可以使用无头、自动化PhantomJS
浏览器或拥有虚拟显示器。作为一个经常提到的缺点,性能经常被提及——当selenium
您作为 Web 浏览器中的真实用户使用目标站点时,它正在加载形成页面所需的额外文件、发出 XHR 请求、呈现等。
这本身并不意味着你应该selenium
到处使用——明智地选择工具,选择它是因为它更适合问题,而不是因为你更熟悉一种工具。
另请注意,您应该首先考虑使用 API(如果由目标网站提供)而不是进行网络抓取。而且,如果涉及到它,请成为一名优秀的网络抓取公民: