Mac 搭建selenium环境

一、selenium环境搭建
1、安装selenium
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple selenium
检验selenium是否安装成功,到Pycharm中 import一下,能正常导入说明安装成功。
2、下载对应的浏览器驱动
谷歌浏览器:http://chromedriver.storage.googleapis.com/index.html
https://npm.taobao.org/mirrors/chromedriver
其他浏览器:https://www.cnblogs.com/puhongjun/p/10232489.html

eg: 首先查看自己安装的google浏览器的版本
在这里插入图片描述
下载对应版本的浏览器驱动
在这里插入图片描述
然后将下载好的chromedriver 移动到/usr/local/bin目录下
打开终端执行命令:
前提:先切到你下载的chromedriver存放的目录下在执行如下命令。
sudo mv chromedriver /usr/local/bin

将chromedriver添加到环境变量中
打开:open .bash_profile
export PATH=$PATH:/usr/local/bin/chromedriver
source .bash_profile

3、支持语言
python、java、javaScript、ruby、c++

二、原理

1、cs架构
脚本(客户端) ---- webdriver(对应浏览器驱动–服务器)---- web浏览器
2、本质
通过http协议进行通信
打开浏览器—手动启动webdriver服务器—发送post请求给webdriver操作浏览器

三、简单代码实现

以打开百度为例:

from selenium import webdriver
import logging
import time
logging.basicConfig(level=logging.DEBUG)
# 启动浏览器驱动服务器
driver = webdriver.Chrome()
driver.get("https://www.baidu.com")
time.sleep(5)
driver.close()

日志:

DEBUG:selenium.webdriver.remote.remote_connection:POST http://127.0.0.1:50267/session {"capabilities": {"firstMatch": [{}], "alwaysMatch": {"browserName": "chrome", "platformName": "any", "goog:chromeOptions": {"extensions": [], "args": []}}}, "desiredCapabilities": {"browserName": "chrome", "version": "", "platform": "ANY", "goog:chromeOptions": {"extensions": [], "args": []}}}
DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): 127.0.0.1:50267
DEBUG:urllib3.connectionpool:http://127.0.0.1:50267 "POST /session HTTP/1.1" 200 797
DEBUG:selenium.webdriver.remote.remote_connection:Finished Request
DEBUG:selenium.webdriver.remote.remote_connection:POST http://127.0.0.1:50267/session/a302da3866b6357b06809f3a140d9bf4/url {"url": "https://www.baidu.com"}
DEBUG:urllib3.connectionpool:http://127.0.0.1:50267 "POST /session/a302da3866b6357b06809f3a140d9bf4/url HTTP/1.1" 200 14
DEBUG:selenium.webdriver.remote.remote_connection:Finished Request
DEBUG:selenium.webdriver.remote.remote_connection:DELETE http://127.0.0.1:50267/session/a302da3866b6357b06809f3a140d9bf4/window {}
DEBUG:urllib3.connectionpool:http://127.0.0.1:50267 "DELETE /session/a302da3866b6357b06809f3a140d9bf4/window HTTP/1.1" 200 12
DEBUG:selenium.webdriver.remote.remote_connection:Finished Request

运行就会打开浏览器并进入百度页面
在这里插入图片描述

四、手动模拟发送post请求打开浏览器,进入百度页面

import os

import requests

# 打开浏览器
url1 = "http://127.0.0.1:50267/session"
data1 = {"capabilities": {"firstMatch": [{}], "alwaysMatch": {"browserName": "chrome", "platformName": "any",
                                                              "goog:chromeOptions": {"extensions": [], "args": []}}},
         "desiredCapabilities": {"browserName": "chrome", "version": "", "platform": "ANY",
                                 "goog:chromeOptions": {"extensions": [], "args": []}}}
res = requests.post(url=url1, json=data1)
print(res.json())
session_id = res.json()["sessionId"]

# 启动webdriver服务
os.system("/usr/local/bin/chromedriver")

# 访问百度地址
url2 = "http://127.0.0.1:50267/session/{}/url".format(session_id)
data2 = {"url": "https://baidu.com"}
res2 = requests.post(url=url2, json=data2)
print(res2.json())
  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值