BS4提取chrome.webdriver方法和属性以及描述并输出到Excel

2024-03-21 06:04

本文主要是介绍BS4提取chrome.webdriver方法和属性以及描述并输出到Excel,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

BS4网络提取selenium.chrome.WebDriver类的方法及属性
chrome.webdriver: selenium.webdriver.chrome.webdriver — Selenium 4.18.1 documentation

class selenium.webdriver.chrome.webdriver.WebDriver 是 Selenium 中用于操作 Chrome 浏览器的 WebDriver 类。WebDriver 类是 Selenium 提供的一个关键类,用于驱动浏览器执行各种操作,比如打开网页、查找元素、模拟用户操作等

通过使用 selenium.webdriver.chrome.webdriver.WebDriver 类,结合其他 Selenium 提供的方法和类,可以实现自动化测试、网页数据抓取等功能。Chrome WebDriver 是针对 Chrome 浏览器的驱动程序,可以与 Chrome 浏览器无缝集成,实现对浏览器的控制和操作。

提取信息截图:

import requests
from bs4 import BeautifulSoup
import pandas as pd
import reurl = "https://www.selenium.dev/selenium/docs/api/py/webdriver_chrome/selenium.webdriver.chrome.webdriver.html#module-selenium.webdriver.chrome.webdriver"
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')data = []# 提取方法
methods = soup.find_all('dl', class_='method')
for method in methods:name = method.find('dt').find('code').text.strip()description = method.find('dd').text.strip()description = re.sub(r'\n\s*\n', '\n', description)  # 使用正则表达式删除多余的空行data.append(['Method', name, description])# 提取属性
# 正则表达式r'\n\s*\n'的含义是:
# \n: 匹配换行符。
# \s*: 匹配零个或多个空白字符(空格、制表符等)。
# \n: 再次匹配换行符。
# 整个正则表达式r'\n\s*\n'用来匹配连续出现的多个换行符,并且中间可以包含任意数量的空白字符。
# 这样就可以将连续的多个空行替换为单个换行符,从而实现删除多余空行的效果。
# 在代码中的使用是为了确保描述信息中不会出现多个连续的空行,而只保留一个换行符作为段落分隔。attributes = soup.find_all('dl', class_='attribute')
for attribute in attributes:name = attribute.find('dt').find('code').text.strip()description = attribute.find('dd').text.strip()description = re.sub(r'\n\s*\n', '\n', description)  # 使用正则表达式删除多余的空行data.append(['Attribute', name, description])# 将数据存储到DataFrame中
df = pd.DataFrame(data, columns=['Type', 'Name', 'Description'])# 将数据写入Excel文件
excel_file = "methods_attributes.xlsx"
df.to_excel(excel_file, index=False)

正则表达式r'\n\s*\n'的含义是:
\n: 匹配换行符。
\s*: 匹配零个或多个空白字符(空格、制表符等)。
\n: 再次匹配换行符。
整个正则表达式r'\n\s*\n'用来匹配连续出现的多个换行符,并且中间可以包含任意数量的空白字符。
这样就可以将连续的多个空行替换为单个换行符,从而实现删除多余空行的效果。
在代码中的使用是为了确保描述信息中不会出现多个连续的空行,而只保留一个换行符作为段落分隔。

-------------------------------
基础知识:
# 当使用 BeautifulSoup 的 find_all() 方法进行查找时,可以结合多种条件和技巧来定位和提取需要的元素。
# 以下是归纳的一些常见的 find_all() 查找方式:
# 按标签名查找:soup.find_all('tag_name')
# 按类名查找:soup.find_all(class_='class_name')
# 按 id 查找:soup.find_all(id='element_id')
# 按属性查找:soup.find_all(attrs={'attribute': 'value'})
# 结合多个条件查找:soup.find_all('tag', class_='class_name', attrs={'attribute': 'value'})
# 按文本内容查找:soup.find_all(text='desired_text')
# 结合正则表达式的文本内容查找:soup.find_all(text=re.compile(r'regex_pattern'))
# 按子节点查找:parent_element.find_all('child_tag')
# 按序号查找:soup.find_all('tag_name')[index]
# 查找特定属性存在的元素:soup.select('[attribute]')
# 结合列表推导式进行查找:[tag for tag in soup.find_all() if condition]
# find(name, attrs, recursive, text, **kwargs):在当前标签内查找第一个符合条件的元素,并返回其 Tag 对象。
# find_all(name, attrs, recursive, text, limit, **kwargs):在当前标签内查找所有符合条件的元素,并返回一个列表。
# find_parent(name, attrs, recursive, text, **kwargs):查找当前标签的父元素并返回其 Tag 对象。
# find_next_sibling(name, attrs, recursive, text, **kwargs):查找当前标签的下一个同级元素并返回其 Tag 对象。

# tag.name:用于获取元素的标签名。
# tag.text 或 tag.get_text():用于获取元素的文本内容。
# tag['attribute'] 或 tag.get('attribute'):用于获取元素的属性值。
# tag.contents:用于获取元素的子节点列表。
# tag.parent 或 tag.parents:用于获取元素的父节点或祖先节点。
# tag.next_sibling 或 tag.previous_sibling:用于获取元素的下一个兄弟节点或上一个兄弟节点。
# tag.next_element 或 tag.previous_element:用于获取元素的下一个节点或上一个节点,可以是标签、字符串或注释。
# tag.has_attr('attribute'):用于判断元素是否包含某个属性。
# tag.find_previous(name=None, attrs={}, text=None, **kwargs) 和 tag.find_all_previous(name=None, attrs={}, text=None, limit=None, **kwargs):用于查找元素前面的满足条件的元素,参数与 find() 和 find_all() 方法类似。
# tag.select_one(selector):用于按照 CSS 选择器语法查找元素,并返回第一个匹配的元素。
# tag.select(selector):用于按照 CSS 选择器语法查找元素,并返回所有匹配的元素。

select() 方法是 BeautifulSoup 中用于按照 CSS 选择器语法查找元素,并返回所有匹配的元素的功能。通过使用CSS选择器语法,可以更方便地定位和选择需要的元素。
下面是 select() 方法及其参数的详细介绍:
语法 select(selector)
参数说明
selector:字符串类型,表示 CSS 选择器语法的表达式,用于指定要查找的元素。
CSS 选择器语法示例
标签选择器:tagname,如 p 表示选择所有 <p> 标签。soup.select('p')
类选择器:.classname,如 .content 表示选择所有 class 属性为 content 的元素。soup.select('.content')
ID 选择器:#idname,如 #footer 表示选择 id 属性为 footer 的元素。soup.select('#header')
层级选择器:ancestor descendant,如 div p 表示选择所有 <p> 标签,其父元素为 <div>。soup.select('div p')
子元素选择器:parent > child,如 div.content > p 表示选择所有 <p> 标签,其父元素为 <div>,且 class 属性为 content。soup.select('div.content > p')
后代元素选择器:ancestor descendant,如 div .content 表示选择所有具有 content 类名的元素,且其祖先元素为 <div>。soup.select('div .content')

这篇关于BS4提取chrome.webdriver方法和属性以及描述并输出到Excel的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/831943

相关文章

PyTorch核心方法之state_dict()、parameters()参数打印与应用案例

《PyTorch核心方法之state_dict()、parameters()参数打印与应用案例》PyTorch是一个流行的开源深度学习框架,提供了灵活且高效的方式来训练和部署神经网络,这篇文章主要介绍... 目录前言模型案例A. state_dict()方法验证B. parameters()C. 模型结构冻

利用c++判断水仙花数并输出示例代码

《利用c++判断水仙花数并输出示例代码》水仙花数是指一个三位数,其各位数字的立方和恰好等于该数本身,:本文主要介绍利用c++判断水仙花数并输出的相关资料,文中通过代码介绍的非常详细,需要的朋友可以... 以下是使用C++实现的相同逻辑代码:#include <IOStream>#include <vec

Python字符串处理方法超全攻略

《Python字符串处理方法超全攻略》字符串可以看作多个字符的按照先后顺序组合,相当于就是序列结构,意味着可以对它进行遍历、切片,:本文主要介绍Python字符串处理方法的相关资料,文中通过代码介... 目录一、基础知识:字符串的“不可变”特性与创建方式二、常用操作:80%场景的“万能工具箱”三、格式化方法

springboot+redis实现订单过期(超时取消)功能的方法详解

《springboot+redis实现订单过期(超时取消)功能的方法详解》在SpringBoot中使用Redis实现订单过期(超时取消)功能,有多种成熟方案,本文为大家整理了几个详细方法,文中的示例代... 目录一、Redis键过期回调方案(推荐)1. 配置Redis监听器2. 监听键过期事件3. Redi

基于SpringBoot实现分布式锁的三种方法

《基于SpringBoot实现分布式锁的三种方法》这篇文章主要为大家详细介绍了基于SpringBoot实现分布式锁的三种方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、基于Redis原生命令实现分布式锁1. 基础版Redis分布式锁2. 可重入锁实现二、使用Redisso

C#实现将XML数据自动化地写入Excel文件

《C#实现将XML数据自动化地写入Excel文件》在现代企业级应用中,数据处理与报表生成是核心环节,本文将深入探讨如何利用C#和一款优秀的库,将XML数据自动化地写入Excel文件,有需要的小伙伴可以... 目录理解XML数据结构与Excel的对应关系引入高效工具:使用Spire.XLS for .NETC

自定义注解SpringBoot防重复提交AOP方法详解

《自定义注解SpringBoot防重复提交AOP方法详解》该文章描述了一个防止重复提交的流程,通过HttpServletRequest对象获取请求信息,生成唯一标识,使用Redis分布式锁判断请求是否... 目录防重复提交流程引入依赖properties配置自定义注解切面Redis工具类controller

C#如何在Excel文档中获取分页信息

《C#如何在Excel文档中获取分页信息》在日常工作中,我们经常需要处理大量的Excel数据,本文将深入探讨如何利用Spire.XLSfor.NET,高效准确地获取Excel文档中的分页信息,包括水平... 目录理解Excel中的分页机制借助 Spire.XLS for .NET 获取分页信息为什么选择 S

Java利用Spire.XLS for Java自动化设置Excel的文档属性

《Java利用Spire.XLSforJava自动化设置Excel的文档属性》一个专业的Excel文件,其文档属性往往能大大提升文件的可管理性和可检索性,下面我们就来看看Java如何使用Spire... 目录Spire.XLS for Java 库介绍与安装Java 设置内置的 Excel 文档属性Java

Python自动化提取多个Word文档的文本

《Python自动化提取多个Word文档的文本》在日常工作和学习中,我们经常需要处理大量的Word文档,本文将深入探讨如何利用Python批量提取Word文档中的文本内容,帮助你解放生产力,感兴趣的小... 目录为什么需要批量提取Word文档文本批量提取Word文本的核心技术与工具安装 Spire.Doc