linux下安装 Chrome 和 chromedriver 以及 selenium webdriver 使用

1 安装 Chrome

yum install https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm

2 下载 chromedriver

# 进入下载目录
cd soft/crawler_tools# 查看chrome 版本号
google-chrome --version# 在chromedriver下载地址中找到对应版本,下载对应版本chromedriver
wget url
# 如:
wget https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/118.0.5993.70/linux64/chromedriver-linux64.zip# 解压
unzip chromedriver-linux64.zip# 赋权
cd chromedriver-linux64
chmod +x chromedriver

chromedriver 下载地址:
https://googlechromelabs.github.io/chrome-for-testing/ (推荐,包含最新稳定版)
https://chromedriver.storage.googleapis.com/index.html?
http://npm.taobao.org/mirrors/chromedriver/
https://registry.npmmirror.com/-/binary/chromedriver/

查看版本:
在这里插入图片描述

chromedriver对应下载地址
在这里插入图片描述

3 使用 selenium webdriver

现在就可以使用 selenium 的 webdriver 爬取内容了

from selenium import webdriverclass SeleniumWebdriver:def __init__(self):self.chrome_options = webdriver.ChromeOptions()self.chrome_options.add_argument('--headless')self.chrome_options.add_argument('Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36')# chromedriver 地址self._CHROME_DRIVER_LINUX = '/soft/crawler_tools/chromedriver'# 浏览器模拟的方式获取含有专辑 mid 信息的页面def get_pagesource_by_chrome(self, url):browser = webdriver.Chrome(executable_path=self._CHROME_DRIVER_LINUX, options=self.chrome_options)browser.get(url)time.sleep(2)res = browser.page_sourcebrowser.close()return res
if __name__ == "__main__":sw= SeleniumWebdriver()url = "www.baidu.com"content = sw.get_pagesource_by_chrome(url)print(content)

参考:
傻瓜式linux下安装Chrome和chromedriver
chromedriver高于114版本的版本如115、116、117、118等,如何下载对应版本

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/120554.shtml

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

相关文章

在项目管理中,项目经理要控制这三个重要因素:进度、成本、质量

项目管理贯穿项目的整个生命周期,对项目的整个过程进行管理,对项目进行计划、组织、指导和控制的手段。 在项目的生命周期内,进行资源的配置和协调,做出科学决策,从而使项目执行的全过程处于最佳的运行状态&#xff…

22 行为型模式-状态模式

1 状态模式介绍 2 状态模式结构 3 状态模式实现 代码示例 //抽象状态接口 public interface State {//声明抽象方法,不同具体状态类可以有不同实现void handle(Context context); }

C++ 位拷贝

分享一个C的按位拷贝的代码。 由于标准库中所有的拷贝都是以字节为单位的&#xff0c;而没有按位进行拷贝的。最近碰到了一个需要按位操作数据的情况&#xff0c;写了一段代码。如有错误&#xff0c;望请指摘。 #include <cstdint> #include <cstdlib>class BitOp…

Cloak斗篷、AB轮询收款科技详解,FP独立站原来可以这样玩!

大多数独立站玩家以前是通过主流的PP、stripe直接进行收款&#xff0c;但因特货类产品客诉率及拒付率等一系列原因&#xff0c;PP、stripe都不支持用于这类产品收款&#xff0c;冒然使用会导致收款账号被查封&#xff0c;需要180天才能回笼资金&#xff0c;严重一点甚至账号直接…

python+requests接口自动化测试框架

1、首先&#xff0c;我们先来理一下思路。 正常的接口测试流程是什么&#xff1f; 脑海里的反应是不是这样的&#xff1a; 确定测试接口的工具 —> 配置需要的接口参数 —> 进行测试 —> 检查测试结果&#xff08;有的需要数据库辅助&#xff09; —> 生成测试报…

linux环境执行jar脚本

一、前言 平常工作中&#xff0c;我们的开发的项目部署到linux环境&#xff0c;以jar包的方式运行&#xff0c;涉及jar包的启动、停止、查看状态等&#xff0c;我们可以通过脚本的方式进行维护&#xff0c;减少自己敲打一长串的命令少敲一个字母或者多敲一个字母&#xff0c;方…

实现寄生组合继承

寄生组合继承是一种继承方式&#xff0c;它通过组合使用构造函数继承和原型继承的方式&#xff0c;实现了高效而且正确的继承方式。 具体实现步骤如下&#xff1a; ① 定义一个父类&#xff0c;实现其属性和方法&#xff1a; function Person(name) {this.name namethis.age…

浙大陈越何钦铭数据结构06-图1 列出连通集

题目 给定一个有N个顶点和E条边的无向图&#xff0c;请用DFS和BFS分别列出其所有的连通集。假设顶点从0到N−1编号。进行搜索时&#xff0c;假设我们总是从编号最小的顶点出发&#xff0c;按编号递增的顺序访问邻接点。 输入格式: 输入第1行给出2个整数N(0<N≤10)和E&…

Docker多平台、跨平台编译打包

大多数带有Docker官方标识的镜像都提供了多架构支持。如&#xff1a;busybox镜像支持amd64, arm32v5, arm32v6, arm32v7, arm64v8, i386, ppc64le, and s390x。当你在amd64设备上运行容器时&#xff0c;会拉取amd64镜像。 当你需要构建多平台镜像时&#xff0c;可以用 --platf…

python操作MySQL、SQL注入问题、视图、触发器、事务、存储过程、函数、流程控制、索引(重点)

python操作MySQL(重要) SQL的由来&#xff1a; MySQL本身就是一款C/S架构&#xff0c;有服务端、有客户端&#xff0c;自身带了有客户端&#xff1a;mysql.exe python这门语言成为了MySQL的客户端(对于一个服务端来说&#xff0c;客户端可以有很多) 操作步骤&#xff1a; …

Kafka - 深入了解Kafka基础架构:Kafka的基本概念

文章目录 Kafka的基本概念 Kafka的基本概念 我们首先了解一些Kafka的基本概念。 1&#xff09;Producer &#xff1a;消息生产者&#xff0c;就是向kafka broker发消息的客户端2&#xff09;Consumer &#xff1a;消息消费者&#xff0c;向kafka broker获取消息的客户端3&…

二、【常用的几种抠图方式一】

文章目录 选框抠图快速选择工具抠图魔棒工具抠图对象选择工具抠图套索工具抠图多边形套索工具抠图磁性套索工具抠图 选框抠图 选框工具抠图适合规则的图形&#xff0c;如下图先使用选框工具框出对象的图轮廓&#xff0c;然后再选择并遮住在里边擦出图形的边缘&#xff0c;根据…

Spring MVC 执行流程

前言 Spring MVC 是一个非常强大的框架&#xff0c;它能够帮助开发人员快速构建高效的 Web 应用程序。然而&#xff0c;要理解 Spring MVC 的执行流程并不容易&#xff0c;因为它涉及到多个组件和模块。在本文中&#xff0c;我们将介绍 Spring MVC 的执行流程&#xff0c;帮助…

Vue缓存策略:提升应用性能与用户体验

&#x1f31f; Vue缓存策略&#xff1a;提升应用性能与用户体验 &#x1f4aa; 在Vue.js应用程序开发中&#xff0c;缓存是一种常见的优化策略&#xff0c;它可以有效提升应用的性能和用户体验。Vue提供了一些灵活且易于使用的缓存机制&#xff0c;可以帮助我们优化组件的渲染…

springboot移除nacos yml无法加载

springboot2的一个项目移除了nacos&#xff0c;一直起不来。最后发现是配置文件名称没有修改导致的。 需要把bootstrap.yml改成application.yml bootstrap.yml 和 application.yml 都是Spring Boot应用程序的配置文件&#xff0c;但它们有不同的加载顺序和作用&#xff1a; 加…

Java IDEA feign调用上传文件MultipartFile以及实体对象亲测可行

Java IDEA feign调用上传文件MultipartFile以及实体对象亲测可行 1. 报错 java.lang.IllegalStateException: Body parameter cannot be used with form parameters2. 解决参考 1. 报错 java.lang.IllegalStateException: Body parameter cannot be used with form parameters …

uniapp vue国际化 i18n

一、安装 vue-i18n npm i vue-i18n 二、新建i18n目录 1、en.json 内容 {"loginPage":{"namePh":"Please enter your login account","passwordPh":"Please enter password"} } 2、zh-CN.json 内容 {"loginPage&qu…

CentOS卸载LVM磁盘的方法

在客户环境上遇到一个问题&#xff0c;本身的磁盘满了&#xff0c;需要把没有用的lvm逻辑卷卸载掉&#xff0c;然后挂上去&#xff0c;下面记录一下过程。 卸载原磁盘 umount /data # 如果/data目录正在被其他进程使用中&#xff0c;则使用fuser强制关闭&#xff0c;然后Umou…

Android开发中关于Ui的语法糖

一、layout_margin和padding android:layout_margin“10dp”&#xff0c;android:padding"10dp"区别 android:layout_margin"10dp"&#xff1a; 适用对象&#xff1a;用于调整 View 与其父容器或相邻 View 之间的距离&#xff0c;即外边距&#xff08;mar…

MacOS Mojave(苹果14系统) v10.14.6中文离线安装包

MacOS Mojave是一款先进的操作系统&#xff0c;它拥有诸多出色的特性。其中&#xff0c;夜间模式可以根据时间或用户设置自动切换&#xff0c;改变了UI、壁纸和窗口的样式&#xff0c;使界面在夜晚使用时更为舒适。另外&#xff0c;新的堆栈和群组功能让用户能更方便地分类和整…