在使用python的selenium庫 抓取動態網頁時,瀏覽器內容出現空白的解決方式
轉載請標明出處,謝謝~。
我使用的版本:
1、python 3.7 (IDE 用的 pycharm)
2、selenium(通過pip install 安裝的最新版本:3.14 時間:2018.9.6 )
3、 geckodriver.exe 21.0
4、firefox 瀏覽器最新版本(62.0 時間:2018.9.6 )
問題:
向Path添加了位於python37\scripts\的geckodriver 以及 向Path添加了firefox瀏覽器的安裝路徑後,執行以下測試程式碼:
from selenium import webdriver
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary
caps = webdriver.DesiredCapabilities().FIREFOX
caps["marionette"] = False
binary = FirefoxBinary(r'C:\Program Files (x86)\Mozilla Firefox\firefox.exe')
driver = webdriver.Firefox(firefox_binary=binary, capabilities=caps,timeout=60)
driver.get("http://www.santostang.com/2018/07/04/hello-world/" )
瀏覽器firefox被開啟,但內容是空白的:`
關閉瀏覽器報錯:
"The browser appears to have exited "
selenium.common.exceptions.WebDriverException: Message: The browser appears to have exited before we could connect. If you specified a log_file in the FirefoxBinary constructor, check it for details.
之後查了很多資料,花了2h左右,找到了解決方法。下載了一個firefox較低版本 35.0 ,之後完美執行!
firefox 35.0版本下載連結: http://ftp.mozilla.org/pub/firefox/releases/35.0.1/win32/zh-CN/
我的是64位計算機,但完美相容。
geckodriver下載連結` https://github.com/mozilla/geckodriver/releases
由於防火牆存在,一次性進不去的話,就先進入https://github.com 然後搜尋geckodriver 點選Mozilla的連結,這裡千萬不要點選下載那裡的檔案,沒用的…..(不要問我為什麼知道)然後再在瀏覽器上方的url連結後面補上releases,選擇版本下載,最新的也行,關鍵就是瀏覽器版本要支援。
` 最後提醒一下,要通過python selenium庫使用老版本firefox時,需要提前關閉最新版本 的firefox(要是刪掉了就當我沒說),不然程式執行不會成功。’
還有什麼其他問題請私戳或留言
以上