centos7安装Chrome使用selenium-wire

server/2024/11/16 21:29:39/

背景:在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/

seleniumwire_110">安装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.ppmy.cn/server/142469.html

相关文章

报错 No available slot found for the embedding model

报错内容 Server error: 503 - [address0.0.0.0:12781, pid304366] No available slot found for the embedding model. We recommend to launch the embedding model first, and then launch the LLM models. 目前GPU占用情况如下 解决办法: 关闭大模型, 先把 embedding mode…

微信小程序之路由跳转传数据及接收

跳转并传id或者对象 1.home/index.wxml <!--点击goto方法 将spu_id传过去--> <view class"item" bind:tap"goto" data-id"{{item.spu_id}}"> 结果: 2.home/index.js goto(event){// 路由跳转页面,并把id传传过去//获取商品idlet i…

[Qt platform plugin问题] Could not load the Qt platform plugin “xcb“

Qt platform plugin 是 Qt 应用程序启动时加载的插件。不同的平台有不同的插件。 常见的插件有:linuxfb Wayland xcb 简单来说就是启动一个GUI程序, 离不开这些插件.选择其中一个就好 出现这个问题要么就是没有插件&#xff0c;要么就是插件依赖的库没有。 要么就是插件选则的…

4. Spring Cloud Ribbon 实现“负载均衡”的详细配置说明

4. Spring Cloud Ribbon 实现“负载均衡”的详细配置说明 文章目录 4. Spring Cloud Ribbon 实现“负载均衡”的详细配置说明前言1. Ribbon 介绍1.1 LB(Load Balance 负载均衡) 2. Ribbon 原理2.2 Ribbon 机制 3. Spring Cloud Ribbon 实现负载均衡算法-应用实例4. 总结&#x…

服务器操作

删除文件 删除当前目录下所有文件&#xff08;不包括子目录中的文件&#xff09;&#xff1a; rm -f *可删除文件夹以及文件夹中的文件 rm -rf 文件名 可删除多个文件夹以及文件夹中的文件 rm -rf 文件名1 文件名2 删除当前目录下所有文件及子目录中的文件&#xff1a…

基于.NET 9实现实时进度条功能:前后端完整示例教程

要在基于.NET 9的应用中实现进度条功能&#xff0c;我们可以通过HttpContext.Response来发送实时的进度更新到前端。以下是一个简单的示例&#xff0c;展示了如何在ASP.NET Core应用中实现这一功能。 但是&#xff0c;我在.net framework4.7.2框架下&#xff0c;实际不了HttpC…

坚持燃油新能源双赛道发力,MG ES5MG7 2025款亮相广州车展

11月15日&#xff0c;第22届广州车展正式启幕&#xff0c;上汽MG名爵携“B级车王炸”MG7 2025款、全球高标准纯电后驱SUV MG ES5、“A级轿跑天花板”新一代MG5等明星阵容重磅登场&#xff0c;并通过一系列技术创新成果及精彩活动展示&#xff0c;尽显百年品牌独特魅力与强大实力…

EXPLAIN优化慢SQL

项目中发现数据查询很慢&#xff0c;导致前端超时等待的问题。经过日志打印发现&#xff0c;查询sql耗时10秒以上&#xff0c;相关sql如下&#xff1a; select distincttablemodel.*from pjtask_model tablemodelJOIN buss_type_permission a ON (tablemodel.fields_data_id …