【Python】selenium爬虫常见用法和配置,以及常见错误和解决方法

欢迎来到《小5讲堂》
这是《Python》系列文章,每篇文章将以博主理解的角度展开讲解。
温馨提示:博主能力有限,理解水平有限,若有不对之处望指正!

在这里插入图片描述

目录

  • 前言
  • 无执行文件
    • 代码
    • 报错信息
    • 错误路径
    • 手动下载
    • 自动下载
  • 选项配置
  • Chrome入参
  • Selenium介绍
  • 文章推荐

前言

有时候我们需要爬取一些数据进行分析和测试,
对于Python而言,selenium插件是爬虫最佳选择,
本篇文章将简单列一些常见错误和解决方法。
温馨提示,合理使用爬虫,任何技术都有利有弊,适当就好。

无执行文件

代码

import time
from selenium import webdriverurl = 'https://blog.csdn.net/gg_61024956/article/details/138566685?spm=1001.2014.3001.5501'driver = webdriver.Edge()
driver.get(url)time.sleep(2)comment_button = driver.find_element(by=By.ID,value='comment_content')print(comment_button.text)

报错信息

Message: ‘chromedriver’ executable needs to be in PATH. Pleasesee https://chromedriver.chromium.org/home
消息:“chromedriver”可执行文件需要在PATH中。Pleasesehttps://chromedriver.chromium.org/home

在这里插入图片描述

错误路径

很多小伙伴会以为是这个路径,发现是可以运行的,可以自动打开浏览器,但并不能控制浏览器
在这里插入图片描述

手动下载

手动下载ChromeDriver(建议使用自动下载模式,简单方便省事)
可以手动下载ChromeDriver并将其放置在一个你容易访问的地方,比如你的项目文件夹中。
ChromeDriver官方地址:https://chromedriver.chromium.org/downloads
在这里插入图片描述

自动下载

自动下载ChromeDriver,自动下载并安装与当前系统中已安装的 Chrome 浏览器版本相匹配的 ChromeDriver。这样做的好处是,你无需手动去下载和管理 ChromeDriver 的版本,而是让
webdriver_manager 库来处理这个任务,确保你使用的 ChromeDriver 版本与 Chrome 浏览器版本兼容。

先安装,pip install webdriver_manager

from webdriver_manager.chrome import ChromeDriverManagerdriver = webdriver.Chrome(ChromeDriverManager().install())

选项配置

webdriver.chrome.options() 是用于配置 Chrome 浏览器的选项的类。
它允许在启动 Chrome 浏览器时配置各种选项,比如设置浏览器窗口大小、启用或禁用 JavaScript、设置代理等等。
在 Python 中,可以使用 webdriver.Chrome() 类来创建一个 Chrome 浏览器的实例,并通过 options 参数传递 webdriver.chrome.options() 的实例来配置 Chrome 浏览器的选项。
以下是一个示例代码:

from selenium import webdriver# 创建 ChromeOptions 实例
chrome_options = webdriver.ChromeOptions()# 设置选项
chrome_options.add_argument('--headless')  # 无头模式,不打开浏览器界面
chrome_options.add_argument('--disable-gpu')  # 禁用 GPU 加速,防止出现一些问题
chrome_options.add_argument('--window-size=1920,1080')  # 设置浏览器窗口大小# 创建 Chrome 浏览器实例,并传入选项
driver = webdriver.Chrome(options=chrome_options)# 使用浏览器实例进行后续操作
driver.get('https://www.example.com')
  • 报错一

module ‘selenium.webdriver’ has no attribute ‘chromeOptions’

很显然这个是小写的问题chromeOptions这个应该是大写ChromeOptions。
并且由于复制代码原因,0ption,细心的会发现,第一个是数字0而不是字母O
在这里插入图片描述

  • 报错二

expected str, bytes or os.PathLike object, not Options
在这里插入图片描述
driver = webdriver.Chrome(executable_path=ChromeDriverManager().install(),options=options)

Chrome入参

executable_path=默认的ChromeDriver驱动路径
ChromeDriverManager().install(),安装路径

C:\Users\自己电脑名.wdm\drivers\chromedriver\win64\124.0.6367.155\chromedriver-win32/chromedriver.exe

在这里插入图片描述
在这里插入图片描述

Selenium介绍

Selenium 是一个用于自动化网页浏览器操作的工具,它提供了一组工具和库,可以用多种编程语言(如Python、Java、JavaScript等)来控制浏览器进行自动化测试、网页截图、网页数据抓取等任务。
在 Python 中,你可以使用 Selenium WebDriver 来控制浏览器。WebDriver 是一个用于自动化 web 浏览器的工具,它提供了一系列的 API,允许你通过编程来模拟用户在浏览器中的各种操作,比如点击链接、填写表单、提交数据等。
下面是一个简单的示例,演示了如何使用 Selenium WebDriver 在 Python 中打开一个网页:

from selenium import webdriver# 创建一个 WebDriver 对象,这里使用 Chrome 浏览器
driver = webdriver.Chrome()# 打开网页
driver.get("https://www.example.com")# 获取页面标题
print("Page title is:", driver.title)# 关闭浏览器
driver.quit()

文章推荐

【Python】selenium爬虫常见用法和配置,以及常见错误和解决方法

【Python】尝试使用一个不可哈希的数据类型作为哈希表的键,错误提示builtins.TypeError,unhashable type

【Python】AES加解密代码,文章还有加密串等你来解密,等你来挑战

【Python】简单使用C/C++和Python嵌套for循环生成一个小爱心

【Python】Python3 使用selenium模块实现简单爬虫系列一

【Python】Python基础学习之python版本对应MySQL-python版本查看

【Python】Python基础学习之python版本对应pip版本查看

总结:温故而知新,不同阶段重温知识点,会有不一样的认识和理解,博主将巩固一遍知识点,并以实践方式和大家分享,若能有所帮助和收获,这将是博主最大的创作动力和荣幸。也期待认识更多优秀新老博主。

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

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

相关文章

【p7】正规式转正规文法

需要注意的是,有时候需要自己构造一个非终结符,非终结符推导到空,然后套用上面的公式即可

apollo资料整理

Application X: Application X Apollo: Apollo 自动驾驶开放平台 Cyber RT API tutorial Apollo learning notes for beginners. buildtool 命令 模块扩展概念介绍 消息的修改及扩展 基于插件进行开发 apollo介绍之Transform模块(七) - 知乎 Apollo Auto GitHub 百度…

Mysql8本地安装

官网: https://www.mysql.com/ yum安装下载:https://dev.mysql.com/downloads/repo/yum/ 二进制安装下载:https://downloads.mysql.com/archives/community/ 安装包下载 yum安装下载 打开网址(https://dev.mysql.com/downloads/r…

基于Vant UI的微信小程序开发(随时更新的写手)

基于Vant UI的微信小程序开发✨ (一)悬浮浮动1、效果图:只要无脑引用样式就可以了2、页面代码3、js代码4、样式代码 (二)底部跳转1、效果图:点击我要发布跳转到发布的页面2、js代码3、页面代码4、app.json代…

Adobe Photoshop PS 25.6.0 解锁版 (最流行的图像设计软件)

前言 Adobe Photoshop 是一款专业强大的图片处理工具,从照片编辑和合成到数字绘画、动画和图形设计,一流的图像处理和图形设计应用程序是几乎每个创意项目的核心所在。利用 Photoshop 在桌面上的强大功能,您可以在灵感来袭时随时随地进行创作…

Redis的数据类型及使用场景

redis命令大全官网: Commands | Docs (redis.io) 基本介绍 redis起初主要就是为了解决性能问题的,那么redis为什么快? 基于内存操作的,所以操作不需要跟磁盘进行交互,单次的执行会很快 命令执行是单线程 因为基于内存操作 单次执行时间反…

数据库调优-连接池优化

先贴下连接池的相关配置: 连接池参数配置: 字段含义Max Number of Connections最大连接数;做性能测试时,可以填 0 。在开发的项目中按实际代码填写,默认是 20 。Max Wait(ms)在连接池中取回连接最大等待时间&#xf…

ECO 视频分类模型

ECO分类模型 ECO 分类模型,可以对视频进行分类,视频是静止画面的集合,并短时间内进行播放,在人眼中形成了视频,通过 FPS 单位进行计算,指的是每秒显示多少张图片。如果直接把图片组合一张大图,…

第十三届蓝桥杯决赛(国赛)真题 Java A 组【原卷】

文章目录 发现宝藏【考生须知】试题 A: 火柴棒数字试题 B: 小蓝与钥匙试题 C: 内存空间试题 D: 斐波那契数组试题 E: 交通信号试题 F: 数组个数试题 G: 六六大顺试题 H : \mathrm{H}: H: 选素数试题 I: 图书借阅试题 J \mathrm{J} J : 括号序列树 发现宝藏 前些天发现了一个…

苹果公司因iPad广告争议而道歉,承认“未达标”|TodayAI

周二,苹果公司发布了一则新的iPad Pro广告,引起了广泛争议,该公司随后发表道歉声明,承认这则广告“未达标”。这则名为“压碎!”的广告意图展示全新的M4芯片iPad Pro的创意潜力,但却因其表现方式而备受批评…

基于FPGA的数字信号处理(8)--RTL运算的溢出与保护

前言 在做加、减、乘、除等运算时,经常会发生 溢出 的情况。比如1个4bits的计数器(每个时钟累加1),在4’b1111 1 后,原本其期望值应该是 151 即16,但是4bits的寄存器能表示的最大值只是4‘b1111即15&…

进一步解读英伟达 Blackwell 架构、NVlink及GB200 超级芯片

2024年3月19日,英伟达CEO黄仁勋在GTC大会上公布了新一代AI芯片架构BLACKWELL,并推出基于该架构的超级芯片GB200,将助推数据处理、工程模拟、电子设计自动化、计算机辅助药物设计、量子计算和生成式 AI 等领域。 为了纪念杰出的数学家David H…