【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.mzph.cn/web/9612.shtml

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

相关文章

Ansible 自动化运维工具 - 了解和模块应用

目录 一. Ansible 的相关知识 1.1 Ansible 工具的简介 1.2 Ansible的四大组件 1.3 运维自动化工具 1.4 Ansible 和其它自动化运维工具对比 1.5 Ansible 的优缺点 二. Ansible 环境安装部署 2.1 管理端安装 ansible 2.2 配置主机清单 三. ansible 命令行模块 3.1 comm…

在编程中,什么是类的继承?

什么是继承 举个栗子,你是某披萨店的员工,你每天的工作就是在一张基础面饼上涂抹不同的香料制作不同的口味,假如某位顾客点了一份番茄味的香肠披萨,你可以直接在这张基础面饼上摊好香肠和番茄酱,而不是从头制作&#x…

拷贝构造、赋值运算符、运算符重载

🐶博主主页:ᰔᩚ. 一怀明月ꦿ ❤️‍🔥专栏系列:线性代数,C初学者入门训练,题解C,C的使用文章,「初学」C,linux 🔥座右铭:“不要等到什么都没有了…

Electron 报错:WinState is not a constructor

文章目录 问题分析 问题 在使用 electron-win-state 库时报错如下 代码如下: const WinState require(electron-win-state) const winState new WinState({ defaultWidth: 800,defaultHeight: 600,// other winState options, see below })const browserWindow…

京东手势验证码-YOLO姿态识别+Bézier curve轨迹拟合

这次给老铁们带来的是京东手势验证码的识别。 目标网站:https://plogin.m.jd.com/mreg/index 验证码如下图: 当第一眼看到这个验证码的时候,就头大了,这玩意咋识别??? 静下心来细想后的一个方案&#xf…

原来pip是有默认路径的。

今天一直报错: bash: /root/data1/anaconda3/envs/li_3_10/bin/pip: /root/lsc/anaconda3/envs/li_3_10/bin/python: bad interpreter: No such file or directory 原来是root/data1/anaconda3/envs/li_3_10/bin/pip: 这个位置的pip 自身带默认路径,然…

Python 正则表达式(一)

文章目录 概念正则函数match函数正则表达式修饰符意义: 常用匹配符限定符原生字符串边界字符 概念 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个…

【问题解决】本地pnpm版本与packageManager中pnpm版本不一致

问题:ERR_PNPM_BAD_PM_VERSION  This project is configured to use v8.6.10 of pnpm. Your current pnpm is v9.1.0 解决:If you want to bypass this version check, you can set the “package-manager-strict” configuration to “false” or set…

Navicat 17 的数据分析

上周的博客预告了 Navicat 17(英文版)即将发布,目前正在测试阶段,并计划于 5 月 13 日发布。如我们所见,版本 17 推出了众多令人兴奋的新功能。其中最大亮点是数据分析工具,只需点击按钮,即可为…

万字长文——前端开发必看的KeepAlive原理详解

前言 本文将从原理应用源码(Vue2和Vue3)的角度全面介绍 组件&#xff0c;全文共计16000字&#xff0c;阅读时间大概30min&#xff0c;建议码住在看&#xff0c;相信看完本文的你会对该组件有一更深刻的认识。 一、<KeepAlive>是什么&#xff1f; <KeepAlive>是一个…

【数据结构】单链表和双链表

文章目录 一、链表的概念及结构二、链表的分类三、无头单向非循环链表1.单链表创建2.尾插和头插3.尾删和头删4.打印5.查找6.插入7.删除8.销毁 四、带头双向循环链表1.双链表的创建2.初始化3.判断链表是否为空4.尾插和头插5.尾删和头删6.查找7.插入8.删除9.销毁 五、总结链表和顺…

[力扣题解]93. 复原 IP 地址

题目&#xff1a;93. 复原 IP 地址 思路 回溯法&#xff1b; 特别的是&#xff0c;用pointNum来记录.的数量&#xff0c;并且没有创建path&#xff0c;而是直接在原来的strings中插入.&#xff1b; 同时&#xff0c;在判断子串合法性的时候&#xff0c;0是合法的&#xff0c;…

Java中使用alibaba的easyexcel中的方法实现csv模板下载功能

系列文章目录 文章目录 系列文章目录一、EasyExcelUtil工具 一、EasyExcelUtil工具 /*** param response 响应* param fileName 文件名称* param sheetName sheet名称* param headNameList 头部名称* param <T>* throws IOException*/public static <T>…

基于Springboot+Vue的Java项目-车辆管理系统开发实战(附演示视频+源码+LW)

大家好&#xff01;我是程序员一帆&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。 &#x1f49e;当前专栏&#xff1a;Java毕业设计 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; &#x1f380; Python毕业设计 &am…

Spring自动装配:解析原理与实践

在Spring框架中&#xff0c;自动装配是一种强大的特性&#xff0c;它能够根据一定的规则自动地将bean装配到Spring容器中&#xff0c;从而简化了配置和开发过程。本文将深入探讨Spring自动装配的原理和实践&#xff0c;帮助程序员更好地理解和应用这一重要特性。 1. 什么是自动…

35个矩阵账号,如何通过小魔推打造2704万+视频曝光?

在如今的短视频时代&#xff0c;矩阵发布的作用被发挥到极致&#xff0c;通过各个短视频平台的流量分发&#xff0c;虽然视频质量不如那些头部的IP&#xff0c;但是在视频数量上却能做到轻松碾压&#xff0c;让自己的品牌与门店有更多的声量&#xff0c;这就是如今短视频平台对…

安卓实现视频录制与显示和翻转摄像头

权限&#xff1a; <!-- 相机权限 --> <uses-featureandroid:name"android.hardware.camera"android:required"false" /> <uses-permission android:name"android.permission.CAMERA" /><!-- 录音权限&#xff08;包括麦克…

2024好用的网页客服系统推荐?

2024好用的网页客服系统推荐&#xff1f;Zoho SalesIQ是一款强大的实时聊天工具&#xff0c;专为网站和在线商店设计。它提供了一套全面的功能&#xff0c;帮助企业实时解决客户问题&#xff0c;提高转化率和客户满意度。 实时监控 Zoho SalesIQ能够实时监控网站的访问者活动&…

能源系统升级BACnet IP分布式I/O边缘模块深度整合

能源管理系统(EMS)的高效运行成为了实现绿色建筑、节能减排的关键。而BACnet IP分布式远程I/O模块作为这一系统中的重要组件&#xff0c;正发挥着不可小觑的作用。本文将以某大型商业综合体为例&#xff0c;探讨BACnet IP I/O模块如何在能源管理中大显身手。 商业综合体涵盖办公…

波分系统中的EDFA光纤放大器

功能&#xff1a; 实现C波段光信号整体放大总波长范围覆盖1528~1565nm支持系统实现不同跨段的无电中继传亮点&#xff1a; 宽增益范围&#xff1a;1528nm~1565nm三种光放大器C波段应用&#xff1a; BA功率放大器LA线路放大器PA前置放大器 低噪声系数&#xff0c;典型值&#xf…