当前位置: 首页 > article >正文

centos7安装Chrome使用selenium-wire

背景:在centos7中运行selenium-wire爬虫,系统自带的Firefox浏览器不兼容,运行报错no attribute ‘set_preference’,应该是selenium-wire和Firefox的驱动不兼容
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vGy4rXIu-1731727463780)(https://i-blog.csdnimg.cn/direct/b0150dc08aaa4127b68aa4dc8cf5a419.png)]
查了半天不知道怎么解决,就想在centos7上安装Chrome来跑爬虫,毕竟Chrome的资料多一点

在Centos7.9上安装python3.9

因为系统自带或者用yum直接install的python最高支持3.6,这个版本pip无法兼容安装selenium-wire,因为需要selenium>=4.0,想用上教新版本的就需要更新python

  1. 查询是否有其他python版本
python3 --version
  1. 卸载存在的python3版本
yum remove python3
  1. 在官网中找到需要的Python版本
    https://www.python.org/ftp/python

  2. 登录到centos7

# 使用命令将python安装包下载到centos7
wget https://www.python.org/ftp/python/3.9.0/Python-3.9.0.tgz
# 如果未安装wget,使用命令进行安装
yum -y install wget
  1. 使用命令解压下载的Python安装包
tar -zxvf Python-3.9.0.tgz
  1. 使用命令准备编译环境
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make
  1. 创建安装目录
mkdir -p /opt/python3.9
  1. 进入到解压后的安装包内
cd Python-3.9.0
指定安装目录执行
./configure --prefix=/opt/python3.9
  1. 编译安装
make && make install
  1. 创建软连接,依次执行以下代码
ln -s /opt/python3.9/bin/python3.9 /usr/bin/python3
ln -s /opt/python3.9/bin/pip3.9 /usr/bin/pip3
  1. 检验python
python3 --version

安装Chrome

选择了安装124版本,下载地址:

http://dist.control.lth.se/public/CentOS-7/x86_64/google.x86_64/google-chrome-stable-124.0.6367.118-1.x86_64.rpm

或选择自己想要的版本(过高版本可能会安装失败):

http://dist.control.lth.se/public/CentOS-7/x86_64/google.x86_64/

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yDps1kqJ-1731727463782)(https://i-blog.csdnimg.cn/direct/63bd7c166e35458eb22af6278a0109a3.png)]

  1. 上传下载的chrom安装包
  2. 准备安装环境
yum -y install liberation-fonts
yum -y install libvulkan*
  1. 安装Chrome
rpm -ivh google-chrome-stable-124.0.6367.118-1.x86_64.rpm
  1. 启动
    使用root用户启动需要使用
google-chrome --no-sandbox

下载对应Chrome版本的driver

地址:

https://storage.googleapis.com/chrome-for-testing-public/124.0.6367.207/linux64/chromedriver-linux64.zip

或者最新驱动器的地址:

https://googlechromelabs.github.io/chrome-for-testing/

解压zip把驱动放到环境内

cp chromedriver-linux64/chromedriver /usr/local/bin/

安装selenium-wire

pip3 install selenium selenium-wire
pip3 install requests

基本使用

from seleniumwire import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.options import Options
def my_get():
    options = Options()
    # 启用无头模式
    options.add_argument('--headless')
    # 关闭浏览器上部提示语:Chrome正在受到自动软件的控制
    options.add_experimental_option(name='excludeSwitches', value=['enable-automation'])
    options.add_experimental_option(name='useAutomationExtension', value=False)
    # options.add_argument("blink-settings=imagesEnabled=false")  # 不加载图片, 提升速度,登陆时需要加载
    user_agent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36'
    options.add_argument(f'user-agent={user_agent}')

    drivers = webdriver.Chrome(options=options)
    drivers.set_window_size(1920, 1080)
    drivers.get("https://www.baidu.com/")
    drivers.implicitly_wait(5)

http://www.kler.cn/a/396445.html

相关文章:

  • STM32+AI语音识别智能家居系统
  • Flink Source 详解
  • 用pandoc工具实现ipynb,md,word,pdf之间的转化
  • 软考教材重点内容 信息安全工程师 第 4 章 网络安全体系与网络安全模型
  • SpringBoot - Async异步处理
  • AI开发-计算机视觉库-OpenCV
  • 第八节 如何结合AAA实现用户远程登录-路由基础
  • Zabbix使用
  • ssm092基于Tomcat技术的车库智能管理平台+jsp(论文+源码)_kaic
  • 03-axios常用的请求方法、axios错误处理
  • 将已有的MySQL8.0单机架构变成主从复制架构
  • 中文书籍对《人月神话》的引用(161-210本):微软的秘密
  • gitlab和jenkins连接
  • hive修改表名、修改列名、修改分区
  • Spring Boot 中 Druid 连接池与多数据源切换的方法
  • ⾃动化运维利器 Ansible-最佳实战
  • git本地分支推送到远程和远程pull到本地
  • sqli-labs靶场13-16关(每日4关)持续更新!!!
  • ChatGPT登录失败的潜在原因分析
  • 数字化转型企业架构设计手册(交付版),企业数字化转型建设思路、本质、数字化架构、数字化规划蓝图(PPT原件获取)
  • 使用pdfjs加载多页pdf并实现打印
  • 基于Java的药店管理系统
  • Java操作PDF:一键生成文件,插入文字、选项、签名及公章
  • IntelliJ IDEA 2024.3(Ultimate Edition)免费化教学
  • Axure网络短剧APP端原型图,竖屏微剧视频模版40页
  • 【会话文本nlp】对话文本解析库pyconverse使用教程版本报错、模型下载等问题解决超参数调试