BS4网络提取selenium.chrome.WebDriver类的方法及属性

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

url = "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')

# with open("selenium.webdriver.chrome.webdriver.WebDriver.html", 'r', encoding='utf-8') as f:
#     html_doc = f.read()
# soup = BeautifulSoup(html_doc, 'html.parser')

methods = soup.find_all('dl', class_='method')
attributes = soup.find_all('dl', class_='attribute')

for method in methods:
    dt = method.find('dt', id=True)
    if dt:
        print(f"Method ID: {dt['id']}")
        # print(f"Method Info: {dt.text}")

for attribute in attributes:
    dt = attribute.find('dt', id=True)
    if dt:
        print(f"Attribute ID: {dt['id']}")
        # print(f"Attribute Info: {dt.text}")
# select() 方法时,通过 CSS 选择器来查找特定的元素
# 通过类名查找元素: elements = soup.select('div.content')
# 通过 ID 查找元素: element = soup.select('div#header')
# 通过标签名查找元素: elements = soup.select('a')
# 通过组合选择器查找元素: listitems = soup.select('ul.menu li')查找class为menu的ul元素下的所有li子元素

# 当使用 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]


# 当使用 BeautifulSoup 的 find 方法查找标签元素时,可以根据不同的需求使用不同的方式来定位目标标签。
# 下面是一些常用的方式和示例:
# find_all(name, attrs, recursive, text, limit, **kwargs):在当前标签内查找所有符合条件的元素,并返回一个列表。
# 通过标签名称查找:tag = soup.find('a')  # 查找第一个<a>标签
# 通过指定标签属性查找:tag = soup.find('a', {'class': 'example'})  # 查找第一个class为'example'的<a>标签
# 通过 CSS 类名查找:tag = soup.find(class_='example')  # 查找第一个class为'example'的标签
# 通过 ID 查找:tag = soup.find(id='example')  # 查找id为'example'的标签
# 通过正则表达式查找:tag = soup.find(text=re.compile('example'))  # 查找文本内容包含'example'的标签
# 结合多个属性查找:tag = soup.find('a', {'class': 'example', 'id': 'link'})  # 查找第一个同时具有class为'example'和id为'link'的<a>标签
# 多个条件逻辑组合查找:tag = soup.find('a', class_='example', id='link')  # 查找第一个同时具有class为'example'和id为'link'的<a>标签
# 使用 CSS 选择器语法查找:tag = soup.select_one('a.example#link')  # 使用CSS选择器语法查找class为'example'且id为'link'的<a>标签
# 查找特定位置的标签:tag = soup.find_all('a')[2]  # 获取第三个<a>标签(索引从0开始)
# 查找父节点中的特定子节点:
# parent_tag = soup.find('div', id='x')
# child_tag = parent_tag.find('a')  # 在id为'parent'的<div>标签中查找第一个<a>标签
# 查找包含特定文本的标签:
# tag = soup.find(text='Example text')  # 查找第一个包含文本 'Example text' 的标签

返回结果:
Method ID: selenium.webdriver.chrome.webdriver.WebDriver.add_cookie
Method ID: selenium.webdriver.chrome.webdriver.WebDriver.add_credential
Method ID: selenium.webdriver.chrome.webdriver.WebDriver.add_virtual_authenticator
Method ID: selenium.webdriver.chrome.webdriver.WebDriver.back
Method ID: selenium.webdriver.chrome.webdriver.WebDriver.bidi_connection
Method ID: selenium.webdriver.chrome.webdriver.WebDriver.close
Method ID: selenium.webdriver.chrome.webdriver.WebDriver.create_web_element
Method ID: selenium.webdriver.chrome.webdriver.WebDriver.delete_all_cookies
Method ID: selenium.webdriver.chrome.webdriver.WebDriver.delete_cookie
Method ID: selenium.webdriver.chrome.webdriver.WebDriver.delete_downloadable_files
Method ID: selenium.webdriver.chrome.webdriver.WebDriver.delete_network_conditions
Method ID: selenium.webdriver.chrome.webdriver.WebDriver.download_file
Method ID: selenium.webdriver.chrome.webdriver.WebDriver.execute
Method ID: selenium.webdriver.chrome.webdriver.WebDriver.execute_async_script
Method ID: selenium.webdriver.chrome.webdriver.WebDriver.execute_cdp_cmd
Method ID: selenium.webdriver.chrome.webdriver.WebDriver.execute_script
Method ID: selenium.webdriver.chrome.webdriver.WebDriver.file_detector_context
Method ID: selenium.webdriver.chrome.webdriver.WebDriver.find_element
Method ID: selenium.webdriver.chrome.webdriver.WebDriver.find_elements
Method ID: selenium.webdriver.chrome.webdriver.WebDriver.forward
Method ID: selenium.webdriver.chrome.webdriver.WebDriver.fullscreen_window
Method ID: selenium.webdriver.chrome.webdriver.WebDriver.get
Method ID: selenium.webdriver.chrome.webdriver.WebDriver.get_cookie
Method ID: selenium.webdriver.chrome.webdriver.WebDriver.get_cookies
Method ID: selenium.webdriver.chrome.webdriver.WebDriver.get_credentials
Method ID: selenium.webdriver.chrome.webdriver.WebDriver.get_downloadable_files
Method ID: selenium.webdriver.chrome.webdriver.WebDriver.get_issue_message
Method ID: selenium.webdriver.chrome.webdriver.WebDriver.get_log
Method ID: selenium.webdriver.chrome.webdriver.WebDriver.get_network_conditions
Method ID: selenium.webdriver.chrome.webdriver.WebDriver.get_pinned_scripts
Method ID: selenium.webdriver.chrome.webdriver.WebDriver.get_screenshot_as_base64
Method ID: selenium.webdriver.chrome.webdriver.WebDriver.get_screenshot_as_file
Method ID: selenium.webdriver.chrome.webdriver.WebDriver.get_screenshot_as_png
Method ID: selenium.webdriver.chrome.webdriver.WebDriver.get_sinks
Method ID: selenium.webdriver.chrome.webdriver.WebDriver.get_window_position
Method ID: selenium.webdriver.chrome.webdriver.WebDriver.get_window_rect
Method ID: selenium.webdriver.chrome.webdriver.WebDriver.get_window_size
Method ID: selenium.webdriver.chrome.webdriver.WebDriver.implicitly_wait
Method ID: selenium.webdriver.chrome.webdriver.WebDriver.launch_app
Method ID: selenium.webdriver.chrome.webdriver.WebDriver.maximize_window
Method ID: selenium.webdriver.chrome.webdriver.WebDriver.minimize_window
Method ID: selenium.webdriver.chrome.webdriver.WebDriver.pin_script
Method ID: selenium.webdriver.chrome.webdriver.WebDriver.print_page
Method ID: selenium.webdriver.chrome.webdriver.WebDriver.quit
Method ID: selenium.webdriver.chrome.webdriver.WebDriver.refresh
Method ID: selenium.webdriver.chrome.webdriver.WebDriver.remove_all_credentials
Method ID: selenium.webdriver.chrome.webdriver.WebDriver.remove_credential
Method ID: selenium.webdriver.chrome.webdriver.WebDriver.remove_virtual_authenticator
Method ID: selenium.webdriver.chrome.webdriver.WebDriver.save_screenshot
Method ID: selenium.webdriver.chrome.webdriver.WebDriver.set_network_conditions
Method ID: selenium.webdriver.chrome.webdriver.WebDriver.set_page_load_timeout
Method ID: selenium.webdriver.chrome.webdriver.WebDriver.set_permissions
Method ID: selenium.webdriver.chrome.webdriver.WebDriver.set_script_timeout
Method ID: selenium.webdriver.chrome.webdriver.WebDriver.set_sink_to_use
Method ID: selenium.webdriver.chrome.webdriver.WebDriver.set_user_verified
Method ID: selenium.webdriver.chrome.webdriver.WebDriver.set_window_position
Method ID: selenium.webdriver.chrome.webdriver.WebDriver.set_window_rect
Method ID: selenium.webdriver.chrome.webdriver.WebDriver.set_window_size
Method ID: selenium.webdriver.chrome.webdriver.WebDriver.start_client
Method ID: selenium.webdriver.chrome.webdriver.WebDriver.start_desktop_mirroring
Method ID: selenium.webdriver.chrome.webdriver.WebDriver.start_session
Method ID: selenium.webdriver.chrome.webdriver.WebDriver.start_tab_mirroring
Method ID: selenium.webdriver.chrome.webdriver.WebDriver.stop_casting
Method ID: selenium.webdriver.chrome.webdriver.WebDriver.stop_client
Method ID: selenium.webdriver.chrome.webdriver.WebDriver.unpin
Attribute ID: selenium.webdriver.chrome.webdriver.WebDriver.capabilities
Attribute ID: selenium.webdriver.chrome.webdriver.WebDriver.current_url
Attribute ID: selenium.webdriver.chrome.webdriver.WebDriver.current_window_handle
Attribute ID: selenium.webdriver.chrome.webdriver.WebDriver.file_detector
Attribute ID: selenium.webdriver.chrome.webdriver.WebDriver.log_types
Attribute ID: selenium.webdriver.chrome.webdriver.WebDriver.mobile
Attribute ID: selenium.webdriver.chrome.webdriver.WebDriver.name
Attribute ID: selenium.webdriver.chrome.webdriver.WebDriver.orientation
Attribute ID: selenium.webdriver.chrome.webdriver.WebDriver.page_source
Attribute ID: selenium.webdriver.chrome.webdriver.WebDriver.switch_to
Attribute ID: selenium.webdriver.chrome.webdriver.WebDriver.timeouts
Attribute ID: selenium.webdriver.chrome.webdriver.WebDriver.title
Attribute ID: selenium.webdriver.chrome.webdriver.WebDriver.virtual_authenticator_id
Attribute ID: selenium.webdriver.chrome.webdriver.WebDriver.window_handles

[Finished in 107.7s]
-------------------------------
基础知识:
# 当使用 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')

  • 16
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值