首頁  >  問答  >  主體

网页爬虫 - ubuntu 下 python 使用 selenium + PhantomJS 时出错

PHP中文网PHP中文网2742 天前858

全部回覆(4)我來回復

  • 迷茫

    迷茫2017-04-17 14:35:09

    我最近也遇到,我認為是動態js還沒解析,所以沒取得到網頁程式碼。異常是NoSuchElementException,很明顯了。

    回覆
    0
  • PHP中文网

    PHP中文网2017-04-17 14:35:09

    還有一種可能,是由於phantomjs屬於headless browser,是沒有視窗的,那麼可能所有元素都沒有繪製。所以這時候你find任何元素都是NoSuchElementException異常。
    可以嘗試以下步驟:

    browser = webdriver.PhantomJS()
    browser.set_window_size(800, 600) # set browser size.
    browser.get("http\:example.com") # Load page

    參考:https://github.com/ariya/phantomjs/issues/11637

    回覆
    0
  • 怪我咯

    怪我咯2017-04-17 14:35:09

    自己回答一下吧。
    在stackoverflow上找到了一個解決方法。
    屏蔽掉css,圖片和js,以提高速度。
    雖然PhantomJS還是不能用,但確實速度變快了,目的達到就好。

    firefox_profile = webdriver.FirefoxProfile()
    firefox_profile.set_preference("browser.download.folderList", 2)
    firefox_profile.set_preference("permissions.default.stylesheet", 2)
    firefox_profile.set_preference("permissions.default.image", 2)
    firefox_profile.set_preference("javascript.enable", False)
    
    browser = webdriver.Firefox(firefox_profile=firefox_profile)
    

    http://stackoverflow.com/questions/20892768/how-to-speed-up-browsing-in-selenium-firefox
    http://stackoverflow.com/questions/17462884/is-selenium-slow -or-is-my-code-wrong

    回覆
    0
  • 阿神

    阿神2017-04-17 14:35:09

    這樣的話,豈不是js也無法解析了,為什麼不用其他的更快的工具呢?

    回覆
    0
  • 取消回覆