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

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等,如何下载对应版本

相关文章:

  • 【iOS】——知乎日报第二周总结
  • github搜索技巧探索
  • C++之string
  • 国产CAN总线收发芯片DP1042 兼容替换TJA1042
  • 企业如何安全跨国传输30T文件数据
  • C多维数组指针(学习笔记)
  • Android Glide判断图像资源是否缓存onlyRetrieveFromCache,使用缓存数据,Kotlin
  • 二进制搭建 Kubernetes+部署网络组件+部署CornDNS+负载均衡部署+部署Dashboard
  • 多输入多输出 | Matlab实现k-means-LSTM(k均值聚类结合长短期记忆神经网络)多输入多输出组合预测
  • Postman日常操作
  • Android 中如何使用 App Links
  • React Swiper.js使用(详细版)3D聚焦特效,自定义导航按钮等
  • ZYNQ连载01-ZYNQ介绍
  • 解决:getReader() has already been called for this request
  • Docker-compose和Consul
  • 【每日笔记】【Go学习笔记】2019-01-10 codis proxy处理流程
  • angular学习第一篇-----环境搭建
  • eclipse的离线汉化
  • es6(二):字符串的扩展
  • HomeBrew常规使用教程
  • jdbc就是这么简单
  • jquery cookie
  • JSDuck 与 AngularJS 融合技巧
  • Linux Process Manage
  • Magento 1.x 中文订单打印乱码
  • PHP 的 SAPI 是个什么东西
  • Puppeteer:浏览器控制器
  • React 快速上手 - 06 容器组件、展示组件、操作组件
  • select2 取值 遍历 设置默认值
  • vue从创建到完整的饿了么(18)购物车详细信息的展示与删除
  • 从零开始的webpack生活-0x009:FilesLoader装载文件
  • 得到一个数组中任意X个元素的所有组合 即C(n,m)
  • 高性能JavaScript阅读简记(三)
  • 构建二叉树进行数值数组的去重及优化
  • 互联网大裁员:Java程序员失工作,焉知不能进ali?
  • 理解 C# 泛型接口中的协变与逆变(抗变)
  • 力扣(LeetCode)56
  • 七牛云假注销小指南
  • 如何学习JavaEE,项目又该如何做?
  • 深度学习中的信息论知识详解
  • 微信小程序--------语音识别(前端自己也能玩)
  • 小李飞刀:SQL题目刷起来!
  • 原生JS动态加载JS、CSS文件及代码脚本
  • 在weex里面使用chart图表
  • 最简单的无缝轮播
  • 1.Ext JS 建立web开发工程
  • k8s使用glusterfs实现动态持久化存储
  • Linux权限管理(week1_day5)--技术流ken
  • Nginx实现动静分离
  • #NOIP 2014# day.2 T2 寻找道路
  • #pragma pack(1)
  • (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切
  • (java)关于Thread的挂起和恢复
  • (阿里巴巴 dubbo,有数据库,可执行 )dubbo zookeeper spring demo
  • (二)换源+apt-get基础配置+搜狗拼音