【问题标题】:How to speed up browsing in Selenium/Firefox?如何加快 Selenium/Firefox 中的浏览速度?
【发布时间】:2014-01-02 22:04:02
【问题描述】:

我正在使用 python 来自动化 selenium/firefox。我拥有的代码将加载大约 85,000 个不同的网页。我知道这需要很长时间,但如果可以完成,我不介意它比现在更快。现在一个网页加载的范围可以从 5 到 10 秒。我知道它可能是网站和/或我的互联网连接,但我想知道是否有一种方法可以加载重要的东西,这样它会更快。我以前在浏览器中看到过这种情况..不加载图像和 javascript 等。我想知道这对于 selenium 中的 firefox 是否可行。 谢谢。

【问题讨论】:

    标签: selenium


    【解决方案1】:

    您可以禁用图像/css/javascript,但 afaik 它是一个全有或全无的开关,您可能需要其中一些才能使您的应用正常运行。

    FirefoxProfile profile = new FirefoxProfile();
    profile.setPreference("permissions.default.stylesheet", 2);
    profile.setPreference("permissions.default.image", 2);
    profile.setPreference("javascript.enabled", false);
    FirefoxDriver browser = new FirefoxDriver(profile);
    

    以上将允许您禁用这些。

    我推荐的一件可能更容易的事情是在无头浏览器(如 htmlunit 或 phantomjs)中运行 selenium,这些也应该更快地运行您的测试。

    【讨论】:

    • 非常感谢!我尝试了我的应用程序在 chrome 中手动执行的操作,但我认为它会起作用。我试试看。
    • 我会考虑无头浏览器。谢谢。
    • 我正试图弄清楚如何在 python 中做到这一点......你知道吗?
    • 哦,我想我找到了。对不起
    【解决方案2】:

    如果您不需要图片、javascript 等任何内容,那么您可能应该使用 BeautifulSoup 之类的东西

    pip install bs4
    

    .

    from bs4 import BeautifulSoup
    import urllib2
    
    soup = BeautifulSoup( urllib2.urlopen( "http://google.com" ).read(), "html5lib" )
    
    soup.select( "body > div" )
    

    【讨论】:

    • 不一定,许多网站都包含不允许无头响应的安全功能。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-19
    • 2017-05-24
    • 2021-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-14
    相关资源
    最近更新 更多