centos7安装Chrome使用selenium-wire

news2024/11/17 4:49:53

背景:在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.coloradmin.cn/o/2241938.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

大数据学习15之Scala集合与泛型

1. 概述 大部分编程语言都提供了数据结构对应的编程库,并称之为集合库(Collection Library),Scala 也不例外,且它还拥有以下优点: 易用:灵活组合运用集合库提供的方法,可以解决大部分集合问题 简洁&#xf…

force stop和pm clear的区别

前言:因为工作中遇到force stop和pm clear进程后,进程不能再次挂起,谷歌系统共性问题,服务类应用经清缓存后当下服务就会挂掉,需要系统重启才能恢复。为了更好的“丢锅”,需要进一步学习force stop和pm cle…

SAP+Internet主题HTML样式选择

SAP目前只支持三种HTML样式选择: 样式一 背景色:深色,蓝 特点:适中型排列,与SAP界面排列相同,富含UI特征,整齐美观 URL地址:http://cn1000-sap-01.sc.com:8000/sap/bc/gui/sap/it…

VBA学习笔记:点击单元格显示指定的列

应用场景: 表格中列数较多,特定条件下隐藏一些无关的列,只保留相关的列,使表格更加清晰。 示例:原表格如下 点击一年级,只显示一年级相关的科目: 点击二年级,只显示二年级相关的科…

java版嘎嘎快充汽车单车充电系统源码系统jeecgboot

汽车使用云快充1.6 1.5协议,单车用的铁塔协议 前端uniapp、后端jeecgbootvue2

这些场景不适合用Selenium自动化!看看你踩过哪些坑?

Selenium是自动化测试中的一大主力工具,其强大的网页UI自动化能力,让测试人员可以轻松模拟用户操作并验证系统行为。然而,Selenium并非万能,尤其是在某些特定场景下,可能并不适合用来自动化测试。本文将介绍Selenium不…

qt QFrame详解

1、概述 QFrame是Qt框架中用于提供框架或边框的控件,主要用于在图形用户界面(GUI)中创建框架,并提供各种边框样式和功能。它是Qt中一个基础的容器类,也是许多基础控件的基类,可以被QLCDNumber、QToolBox、…

python json详解

json 是 Python 中用于处理 JSON 数据的标准库。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人类阅读和编写,同时也易于机器解析和生成。Python 的 json 模块提供了将 Python 对象与 JSON 数据相互转换的功…

ISUP协议视频平台EasyCVR私有化部署视频平台如何实现RTMP推流将大疆无人机的视频画面回传?

在现代视频监控和流媒体技术领域,EasyCVR视频融合云平台以其卓越的性能和灵活性,成为了跨区域、网络化视频监控综合管理的理想选择。作为TSINGSEE青犀视频“云边端”架构体系中的核心组件,私有化部署视频平台EasyCVR不仅能够实现视频数据的集…

【时间之外】IT人求职和创业应知【37】-AIGC私有化

目录 新闻一:2024智媒体50人成都会议暨每经20周年财经媒体峰会召开 新闻二:全球机器学习技术大会在北京召开 新闻三:区块链技术在金融领域的应用取得新突破 不知不觉的坚持了1个月,按照心理学概念,还要坚持2个月&am…

SqlServer 存储临时数据

WITH 子句中的 公用表表达式(CTE)、临时表(Temporary Table) 和 表变量(Table Variable) 都可以存储临时数据,但它们的使用场景、生命周期、作用范围和性能特性有所不同。下面是这三者之间的主要…

jmeter基础05_第1个http请求

本节课使用网站“httpbin.org”进行基础的http请求全流程。 请求获取httpbin.org的首页: 请求方法:GET URL:http://httpbin.org 参数:无 1、操作步骤 ① 打开jmeter:命令行窗口输入“jmeter”并回车。 ② 添加线程组…

SpringBoot+MyBatis+MySQL的Point实现范围查找

前言 最近做了一个功能,需要通过用户当前位置点获取指定范围内的数据。由于后端存储用的是 MySQL,故选择使用 MySQL 中的 Point 实现范围查找功能。ORM 框架用的是 MyBatis,MyBatis 原生并不支持 Point 字段与 POJO 的映射,需要自…

计算机网络中的数据包传输机制详解

💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 计算机网络中的数据包传输机制详解 计算机网络中的数据包传输机制详解 计算机网络中的数据包传输机制详解 引言 数据包的基本概念…

DAY110代码审计-PHP框架开发篇ThinkPHP版本缺陷不安全写法路由访问利用链

https://blog.csdn.net/m0_60571842/article/details/139057898 看这个原作者 知识点: 1、PHP框架学习-ThinkPHP-架构&调试&路由&接受2、PHP框架审计-ThinkPHP-不安全写法&版本漏洞 框架审计总结方向: 1、版本不安全写法怎么检测 -本…

【日志】力扣11.盛水最多的容器

2024.11.15 【力扣刷题】 11.盛水最多的容器 - 力扣&#xff08;LeetCode&#xff09; int maxArea(int* height, int heightSize) {int max 0;int V 0;int left 0;int right heightSize - 1;while (left < right) {if (height[left] > height[right]) {V height[r…

leetcode100:相同的树

给你两棵二叉树的根节点 p 和 q &#xff0c;编写一个函数来检验这两棵树是否相同。 如果两个树在结构上相同&#xff0c;并且节点具有相同的值&#xff0c;则认为它们是相同的。 示例 1&#xff1a; 输入&#xff1a;p [1,2,3], q [1,2,3] 输出&#xff1a;true示例 2&…

❤React-React 组件基础(类组件)

❤React-React 组件基础 1、组件化开发介绍 组件化开发思想&#xff1a;分而治之 React的组件按照不同的方式可以分成类组件&#xff1a; 划分方式一&#xff08;按照组件的定义方式&#xff09; 函数组件(Functional Component )和类组件(Class Component)&#xff1b; …

SQL面试题——抖音SQL面试题 主播播出时长

主播播出时长 现有如下数据,主播id、房间号、播出的批次号,每个批次号进出房间的时间戳、分区时间: 每一次直播都有一个上播和下播,每个房间里,同一个批次号会有两条数据,分别记录了上播和下播时间,求每个主播的播出时长? 通过上面的数据,可以清晰的看出,同一个批次…

无人机检测车辆——多目标检测

目录 YOLOv3&#xff08;You Only Look Once version 3&#xff09;简介 YOLOv3 的主要特点 YOLOv3 的结构 1. 特征提取网络&#xff08;Backbone&#xff09; 2. 检测头&#xff08;Head&#xff09; 3. 输出层 YOLOv3 损失函数 YOLOv3 的优势 YOLOv3 的应用 YOLOv3…