【问题标题】:Read javascript code in selenium without opening browser在不打开浏览器的情况下读取 selenium 中的 javascript 代码
【发布时间】:2015-03-21 08:06:33
【问题描述】:

我正在使用 selenium API 使用 javascript 在页面上进行 webcrapping。

有什么方法可以在不打开网络浏览器屏幕的情况下获取代码?

我是这个 API 的新手

有可能吗?

【问题讨论】:

    标签: javascript python selenium selenium-webdriver web-scraping


    【解决方案1】:

    您至少有 3 个基本选项:

    • 使用无头浏览器,例如PhantomJS,例如:

      >>> from selenium import webdriver
      >>> driver = webdriver.PhantomJS()
      >>> driver.get('http://stackoverflow.com')
      >>> driver.title
      u'Stack Overflow'
      
    • pyvirtualdisplay 的帮助下使用虚拟显示(参见xvfb),示例如下:

    • 使用远程 selenium 服务器,您可以自己在网格中设置自己的节点,或者在例如BrowserStackSauce Labs

      >>> from selenium import webdriver
      >>> from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
      >>> 
      >>> desired_cap = {'os': 'Windows', 'os_version': 'xp', 'browser': 'IE', 'browser_version': '7.0' }
      >>> driver = webdriver.Remote(command_executor='http://username:key@hub.browserstack.com:80/wd/hub', desired_capabilities=desired_cap)
      >>> 
      >>> driver.get('http://stackoverflow.com')
      >>> driver.title
      u'Stack Overflow'
      

    【讨论】:

      【解决方案2】:

      不幸的是,如果没有浏览器中的解释器,您将无法使用 JavaScript。不过,您可以使用 PhantomJS - 无头浏览器。

      【讨论】:

        【解决方案3】:

        您可以使用无头浏览器。 例如 http://phantomjs.org/http://slimerjs.org/

        【讨论】:

          【解决方案4】:

          “有什么方法可以在不打开网络浏览器屏幕的情况下获取代码吗?”- 是的! 你必须导入Options

          from selenium import webdriver   # for webdriver
          from selenium.webdriver.support.ui import WebDriverWait  # for implicit and explict waits
          from selenium.webdriver.chrome.options import Options  # for suppressing the browser
          

          然后在代码中:

          option = webdriver.ChromeOptions()
          option.add_argument('headless')
          driver = webdriver.Chrome(options=option)
          

          然后继续程序的其余部分。

          【讨论】:

            猜你喜欢
            • 2016-05-10
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2016-07-13
            • 2019-06-11
            • 2018-08-04
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多