美文网首页
Python chromedriver库的问题

Python chromedriver库的问题

作者: 胡西恒 | 来源:发表于2017-11-04 21:15 被阅读615次

    前言

    今天在配置 Python 爬虫环境时遇到了一个关于 chromedriver 的问题,按照说明安装好后,执行下面程序出现了以下问题

    • 程序
    from selenium import webdriver
    driver=webdriver.Chrome()
    driver.get("www.baidu.com")
    
    • 遇到的问题
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "C:\SoftWare\Anaconda\lib\site-packages\selenium\webdriver\chrome\webdriv
    er.py", line 62, in __init__
        self.service.start()
      File "C:\SoftWare\Anaconda\lib\site-packages\selenium\webdriver\common\service
    .py", line 102, in start
        raise WebDriverException("Can not connect to the Service %s" % self.path)
    selenium.common.exceptions.WebDriverException: Message: Can not connect to the S
    ervice chromedriver
    

    大概的意思就是不能连接到浏览器,随即对一些电脑配置文件进行检查,如到系统中 hosts 文件中检查是否含有 127.0.0.1 localhost 这一句,需要注意的是如果有这么一句 # 127.0.0.1 localhost ,请删除 # ,然后继续执行程序。

    如果依旧遇到错误,这时候需要检查你下载的 chromedriver.exe 文件是否添加到环境变量中,如果没有,则需要添加,最简单的方式就是把它复制到 Chrome 根目录下或者你安装的 Python 文件中。当然我遇到了一个更狗血的错误,就是开启系统防火墙把 Python 对浏览器的访问限制了,如果电脑开启了防火墙请记得先关闭下。

    hosts文件

    如果出现版本兼容的问题,如低版本的 chromedriver 不能支持高版本的 Chrome 浏览器,则需要去查下官方说明。

    然后我顺利的通过 Python 打开了 Chrome 浏览器,但这时执行 driver.get("www.baidu.com") 时有出现以下问题

    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "C:\SoftWare\Anaconda\lib\site-packages\selenium\webdriver\remote\webdriv
    er.py", line 320, in get
        self.execute(Command.GET, {'url': url})
      File "C:\SoftWare\Anaconda\lib\site-packages\selenium\webdriver\remote\webdriv
    er.py", line 308, in execute
        self.error_handler.check_response(response)
      File "C:\SoftWare\Anaconda\lib\site-packages\selenium\webdriver\remote\errorha
    ndler.py", line 194, in check_response
        raise exception_class(message, screen, stacktrace)
    selenium.common.exceptions.WebDriverException: Message: unknown error: unhandled
     inspector error: {"code":-32000,"message":"Cannot navigate to invalid URL"}
      (Session info: chrome=60.0.3112.113)
      (Driver info: chromedriver=2.33.506120 (e3e53437346286c0bc2d2dc9aa4915ba81d902
    3f),platform=Windows NT 6.1.7601 SP1 x86_64)
    

    个人觉得这个问题最关键的一句就是这个 inspector error: {"code":-32000,"message":"Cannot navigate to invalid URL"} 查看了几篇文档,发现别人的都能执行,而自己的不能执行,最后在
    StackOverflow 这个网站找到结果,需要将代码写成这种形式 driver.get("http://www.baidu.com") 最后成功实现功能。

    搞了两个小时,有时候虽然只是一些小问题,但卡住了那也是蛮烦的一件事,不过经常遇到问题再去解决问题也能提高能力,最后还是给大家推荐这个网站,有问题可以去查,虽然是英文版,但是看多了也就习惯了。

    相关文章

      网友评论

          本文标题:Python chromedriver库的问题

          本文链接:https://www.haomeiwen.com/subject/cisqmxtx.html