在使用python的selenium库 抓取动态网页时,浏览器内容出现空白的解决方式

版权声明:转载请标注出处与作者,写文不易,相互尊重从小事做起。 https://blog.csdn.net/JasonRaySHD/article/details/82469969

转载请标明出处,谢谢~。

我使用的版本:

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(要是删掉了就当我没说),不然程序运行不会成功。’

还有什么其他问题请私戳或留言

以上

猜你喜欢

转载自blog.csdn.net/JasonRaySHD/article/details/82469969