本文环境配置
操作系统: Windows10 Pro 1903
子系统: Ubuntu18.04 LTS
conda: conda 4.7.9
python: 3.7
Chrome: 75.0.3770.142(正式版本) (32 位)
chromedriver: chromedriver_win32
Java:openjdk version "11.0.3"
1.创建conda环境
conda create -n spider python=3.7
2.启动环境安装selenium
conda activate spider
conda install selenium
3.下载对应版本的chromedriver
3.1 查看自己的chrome浏览器版本,在右上角帮助,关于 Google Chrome中查看自己的浏览器版本
3.2 在http://chromedriver.storage.googleapis.com/index.html中找到对应Windows版本,下载解压得到chromedriver.exe
4.安装BrowserMob
#采用conda安装会报很多很多环境不兼容的错误,故在conda环境中采用pip安装
pip install browsermob-proxy
附browsermob-proxy的官方文档链接
由于browsermob-proxy是java编写的,运行browsermob-proxy需要安装java环境,下载最新版即可
附上browsermob-proxy的可执行文件下载链接,windows系统使用bin目录下的browsermob-proxy.bat文件,其他系统使用browsermob-proxy
4.编写测试代码进行测试
看清代码!不要复制粘贴说不能用,里面有需要自己添加路径的地方
from browsermobproxy import Server
from selenium import webdriver
server_path = "需要修改为你自己的文件路径/browsermob-proxy"
driver_path = "需要修改为你自己的文件路径/chromedriver.exe"
server = Server(server_path)
server.start()
proxy = server.create_proxy()
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("--proxy-server={0}".format(proxy.proxy))
wd = webdriver.Chrome(options=chrome_options, executable_path=driver_path)
wd.get('http://www.flypeach.com/pc/hk')
print("succeed")
server.stop()
wd.quit()
5.可能会有报错的解决办法
在配置环境过程中,曾多次遇到各类问题,现对网络上的各种解决办法进行总结,希望有所帮助
5.1报错
'chromedriver' executable needs to be in PATH
Service chromedriver unexpectedly exited. Status code was: 127
5.2解决
5.2.1安装驱动
conda install -c mutirri selenium-chromedriver
5.2.2配置环境变量
将chromedriver.exe拷贝至谷歌浏览器目录(如 C:\Program Files\Google\Chrome\Application)
将谷歌浏览器环境变量添加到path(C:\Users\HD003\AppData\Local\Google\Chrome\Application)
亲测这个方法不怎么好使,还是建议采用4中提到的,直接将chromedriver.exe的路径写进去!
5.2.3添加依赖
这部分建议大家根据报错自己搜解决办法,不一而足,没法一一列举,强烈建议在conda中配环境!能省很多事
6.写在最后
微软的Ubuntu子系统真的是开发者的福音,在linux子系统中完美调用Windows程序,将Windows的图形化界面和linux强大终端的结合在一起极大的提高了生产力