9

我感興趣的是自動化重複數據錄入某些形式的頻繁的網站。到目前爲止,我查過的工具可以爲Selenium WebDriver和Mechanize提供無頭支持。Selenium Webdriver vs機械化

我的問題是,使用一次與另一次使用時是否存在根本的技術差異?硒主要用於測試。我也注意到一些人使用它來做我正在尋找的東西,這就是數據錄入的自動化。在這種情況下,測試成爲第二個好處。

有沒有理由不使用Selenium來完成我想要的功能?這不重要,這兩種工具都可以工作嗎?

我不是問哪個更好,我問的是哪個是正確的工具。也許我不瞭解每個工具背後的前提。

回答

28

這些是完全不同的工具,在網絡抓取,網頁自動化,自動數據提取範圍中有些「交叉」。

mechanize是一個成熟的和廣泛使用的程序化web瀏覽工具,具有許多內置功能,如cookie處理,瀏覽器歷史記錄,表單提交。這裏要了解的關鍵是mechanize.Browser不是真正的瀏覽器,它不能執行和理解JavaScript,它不能發送經常需要形成網頁的異步請求。

這是selenium發揮作用 - 它是一個瀏覽器自動化工具,它也廣泛用於網絡抓取。 selenium通常會成爲一個「回退」工具 - 當某人無法通過mechanizeRoboBrowserMechanicalSoup(請注意 - 另一種替代方法)網址刮取某個網站時,因爲它的JavaScript「沉重」,因此通常會選擇selenium。有了selenium,你也可以去無頭,自動化PhantomJS瀏覽器,或者有一個virtual display。作爲一個通常提到的缺點,性能經常被提到 - selenium您正在使用網頁瀏覽器中的真實用戶的目標網站,它正在加載形成頁面所需的其他文件,製作XHR請求,渲染等。

而這本身並不意味着你應該到處使用selenium--明智地選擇工具,選擇它是因爲它更適合問題,而不是因爲你更熟悉儀器


另外請注意,您應該首先考慮使用API​​(如果由目標網站提供)而不是下載到網絡抓取。而且,如果涉及到它,是一個很好的網絡刮公民:

+0

「選擇它,因爲它符合這個問題比較好,不是因爲你是比較熟悉的儀器。」說得好! – thuzhf