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.mzph.cn/bicheng/61314.shtml

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

相关文章

C++设计模式:抽象工厂模式(风格切换案例)

抽象工厂模式(Abstract Factory)是一种创建型设计模式,其核心思想是:为一组相关或相互依赖的对象提供一个创建接口,而无需指定它们具体的类。简单来说,就是一个工厂可以生产一系列相关的对象。 我们接下来…

Oracle数据库安全扫描1158/3938端口出现弱SSL加密算法解决方法之一

问题复述 某国企项目现场反应安全扫描出部署某历史项目的Windows服务器上的1158及3938两个端口出现了弱SSL加密算法漏洞,要求整改。 经过核实,该Windows服务器上部署了tomcat与Oracle 11g数据库,其中1158和3938两个端口均为Oracle数据库所使…

linux 中mysql查看慢日志

1、到mysql容器,先登录到数据库,查看是否开启 mysql -h 127.0.0.1 -uroot -p SHOW VARIABLES LIKE slow_query_log; 2、如果没有开启,需要先开启 set global slow_query_log ON; 3、查看慢日志文件 SHOW VARIABLES LIKE slow_query_log…

从0开始机器学习--Day30--异常检测算法

异常检测算法(Anomaly detection algorithm) 我们定义异常检测算法的输出,也写作,这里的每一项括号内代表的是每个特征都符合各自的高斯分布(也就是正态分布),代表均值,决定了模型的中心位置;代…

[数组二分查找] 0209. 长度最小的子数组

文章目录 1. 题目链接2. 题目大意3. 示例4. 解题思路5. 参考代码 1. 题目链接 209. 长度最小的子数组 - 力扣(LeetCode) 2. 题目大意 描述:给定一个只包含正整数的数组 nums 和一个正整数 target。 要求:找出数组中满足和大于等…

架构图解析:如何构建高效的微服务系统

在当今的数字化浪潮中,构建高效、灵活且可扩展的系统已成为企业的重要目标。微服务架构作为一种先进的软件设计模式,通过将复杂的应用程序分解为一系列小型、独立的服务,显著提升了系统的灵活性、可扩展性和维护性。本文将通过解析微服务系统…

排序排序的概念及其运用和选择排序

排序排序的概念及其运用和选择排序 7. 排序7.1 排序的概念及其运用7.2 选择排序算法——直接选择排序选择排序基本思想:直接选择排序选择排序原理参考程序 如何交换数据直接选择排序的特性总结: 7. 排序 7.1 排序的概念及其运用 排序:所谓排…

centos和ubuntu有什么区别?

CentOS与Ubuntu的区别在于以下几个方面:1、源码基础不同;2、设计理念不同;3、使用场景不同;4、软件包管理不同;整体上看,CentOS更倾向于企业级服务器应用,稳定性较强;而Ubuntu更注重…

Websocket如何分块处理数据量超大的消息体

若我们服务端一次性最大处理的字节数是1M,而客户端发来了2M的数据,此时服务端的数据就要被切割成两次传输解码。Http协议中有分块传输,而在Websocket也可以分块处理超大的消息体。在jsr356标准中使用javax.websocket.MessageHandler.Partial可以分块处理…

ELMo模型介绍:深度理解语言模型的嵌入艺术

ELMo模型介绍:深度理解语言模型的嵌入艺术 引言 在自然语言处理(NLP)领域,词嵌入(word embedding)是将词汇或短语从词汇表映射到向量的数学表示,这些向量能够捕捉词汇之间的语义和语法关系。E…

【澜舟科技-注册/登录安全分析报告】

前言 由于网站注册入口容易被机器执行自动化程序攻击,存在如下风险: 暴力破解密码,造成用户信息泄露,不符合国家等级保护的要求。短信盗刷带来的拒绝服务风险 ,造成用户无法登陆、注册,大量收到垃圾短信的…

C++ 编程基础(8)模版 | 8.3、类模版

文章目录 一、类模版1、定义2、模板参数3、模版的实例化4、模版的特化5、模版成员函数6、总结 前言&#xff1a; 这里是引用 一、类模版 1、定义 类模板的定义以template关键字开始&#xff0c;后面跟着一个模板参数列表&#xff08;用尖括号< >包围&#xff09;。模板参…

HarmonyOS NEXT应用开发实战:十二、远场通信RCP简单好用的模块化封装

在进行HarmonyOS的应用开发中&#xff0c;我们常常需要进行网络通信。然而&#xff0c;原始的远场通信&#xff08;RCP&#xff09;使用方式较为繁琐&#xff0c;让人感到不够便捷。作为一位前期从事小程序开发的开发者&#xff0c;我深受小程序网络访问的简单性和便利性的吸引…

uni-app快速入门(十)--常用内置组件(下)

本文介绍uni-app的textarea多行文本框组件、web-view组件、image图片组件、switch开关组件、audio音频组件、video视频组件。 一、textarea多行文本框组件 textarea组件在HTML 中相信大家非常熟悉&#xff0c;组件的官方介绍见&#xff1a; textarea | uni-app官网uni-app,un…

Tomcat 如何管理 Session

Tomcat 如何管理 Session 我们知道&#xff0c;Tomcat 中每一个 Context 容器对应一个 Web 应用&#xff0c;而 Web 应用之间的 Session 应该是独立的&#xff0c;因此 Session 的管理肯定是 Context 级的&#xff0c;也就是一个 Context 一定关联多个 Session。 Tomcat 中主…

Flink vs Spark

Flink vs Spark Flink和Spark都是大数据处理领域的热门分布式计算框架&#xff0c;它们有各自的特点和优势&#xff0c;适用于不同的场景。本文对两者进行对比。 一、技术理念与架构 Flink&#xff1a; 基于事件驱动&#xff0c;面向流的处理框架。支持真正的流计算&#xff0c…

鸿蒙NEXT开发-用户通知服务的封装和文件下载通知

注意&#xff1a;博主有个鸿蒙专栏&#xff0c;里面从上到下有关于鸿蒙next的教学文档&#xff0c;大家感兴趣可以学习下 如果大家觉得博主文章写的好的话&#xff0c;可以点下关注&#xff0c;博主会一直更新鸿蒙next相关知识 专栏地址: https://blog.csdn.net/qq_56760790/…

01 IP路由基础

一、路由器是怎么转发数据包 • 当数据包到达路由器之后&#xff0c;根据数据包的目的 IP 地址&#xff0c;查找 路由表&#xff0c;并根据路由表中相应的路由所指示出接口还有下一跳 指导数据包在网络中的转发。 • 如果路由器路由表没有路由怎么办&#xff1f; -------- 将数…

Android studio 呼叫盒app

一、权限文件 0.gradle切换国内源 #Fri Nov 08 15:46:05 CST 2024 distributionBaseGRADLE_USER_HOME distributionPathwrapper/dists distributionUrlhttps://mirrors.cloud.tencent.com/gradle/gradle-8.4-bin.zip zipStoreBaseGRADLE_USER_HOME zipStorePathwrapper/dists1…

[Admin] Dashboard Filter for Mix Report Types

Background RevOps team has built a dashboard for sales team to track team members’ performance, but they’re blocked by how to provide a manager view based on sales’ hierarchy. Therefore, they seek for dev team’s help to clear their blocker. From foll…