因工作需要,需要将期货交易所网址的内容,进行爬取;我通过selenium来处理,但打开网之后,发现提示“该网页无法正常运作”。但如果用Google Chrome,倒是能正常打开。
网上有说是chromedriver的版本不一致导致的,我用了匹配的chromedriver进行实践,也是这样。
地址:http://www.dce.com.cn/dalianshangpin/ywfw/jystz/index.html
现象:
1.查看本机chrome浏览器版本
打开chrome浏览器,右上角三个点点里面找到设置查看版本:96.0.4664.45
2.去下载对应版本的ChromeDriver
链接地址:http://chromedriver.storage.googleapis.com/index.html
找到对应自己chrome浏览器版本的文件
点击进入,下载对应自己操作系统的文件压缩包64位下载win32就可以
3.解压下载好的安装包之后有两种方式可以让程序找到ChromeDriver驱动并使用它:分为3.1和3.2
3.1将文件夹中的.exe文件放在python文件夹下,该方法需要移动驱动程序文件位置,稍微麻烦一些,且后期更新ChromeDriver后还需要重复该步骤,不如3.2方便
压缩包
解压后文件夹内只有一个.exe文件
将该.exe文件放在包含python.exe的python文件夹下
3.2 在代码中设置ChromeDriver的路径,就可以将ChromeDriver文件放在任意位置了
旧版selenium可以使用以下语句直接指定chromedriver.exe文件的位置
from selenium import webdriver
driver = webdriver.Chrome(executable_path='D:\\python3.7.7\\chromedriver_win32\\chromedriver.exe')
driver.get('https://www.baidu.com')
新版selenium废除了上述方式(可以使用但会报),可以使用以下方式,需要引入Service包
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
service = Service(executable_path='D:\\python3.7.7\\chromedriver_win32\\chromedriver.exe')
driver = webdriver.Chrome(service=service)
driver.get('https://www.baidu.com')
经过3.1或3.2的设置后就可以正常运行代码了,不会再报版本不对应的错误