selenium爬虫学习1

news/2024/11/15 6:07:48/文章来源:https://www.cnblogs.com/hackzz/p/18386310

简介

Selenium是广泛使用的模拟浏览器运行的库,它是一个用于Web应用程序测试的工具。 Selenium测试直接运行在浏览器中,就像真正的用户在操作一样,并且支持大多数现代 Web 浏览器。

函数介绍


重点方法
1.find_element方法是 Selenium WebDriver 提供的一种用于查找页面上某个符合条件的元素的方法。
2.find_elements 方法是 Selenium WebDriver 提供的一种用于查找页面上所有符合条件的元素的方法。与 find_element 不同,find_elements 返回的是一个列表,其中包含所有匹配的元素。如果没有找到任何元素,则返回一个空列表。
以下是 find_element(s) 方法的一些常见用法:
By.ID:通过元素的 ID 查找。
By.NAME:通过元素的 name 属性查找。
By.CLASS_NAME:通过元素的类名查找。
By.TAG_NAME:通过元素的标签名查找。
By.LINK_TEXT:通过链接文本查找。
By.PARTIAL_LINK_TEXT:通过部分链接文本查找。
By.CSS_SELECTOR:通过 CSS 选择器查找。
By.XPATH:通过 XPath 表达式查找。
driver.find_element对象具有.click()方法,就是点击这个元素
3.driver.window_handles获取当前所有窗口句柄
4.driver.switch_to.window()跳转到某个窗口

练习代码

from selenium import webdriver
from selenium.webdriver.common.by import By
import time
# 初始化浏览器驱动
driver = webdriver.Chrome()# 打开百度首页
driver.get("https://avd.aliyun.com/")
time.sleep(2)# 定位输入框并输入关键字
search_box = driver.find_element(By.XPATH, "/html/body/header/nav/div/form/input")
search_box.send_keys("MySQL")# 点击搜索按钮
search_button = driver.find_element(By.XPATH, '/html/body/header/nav/div/form/button')
search_button.click()
# 等待2秒
time.sleep(2)
res_header=driver.find_element(By.ID,'itl-header')
print(res_header.text)
tr_elements = driver.find_elements(By.XPATH,"/html/body/main/div[2]/div/div[2]/table/tbody")
for tr in tr_elements:# 在这里对每个tr元素进行操作,例如提取文本内容print(tr.text)
link = driver.find_element(By.PARTIAL_LINK_TEXT, "AVD-2024-21177")
link.click()
all_windows = driver.window_handles
driver.switch_to.window(all_windows[-1])
searchclass=driver.find_elements(By.CSS_SELECTOR, '.border-bottom.border-gray.pb-2.mb-0')
for search in searchclass:print(search.text)
input("Press Enter to close the browser...")
# 关闭浏览器driver.quit()

运行效果

运行过程

运行后先是打开浏览器进入阿里云漏洞库,紧接着搜索MYSQL相关漏洞,结果如下

通过html的id属性找到“搜索结果 关于[mysql]的搜索数据”这几个字打印出来

tr_elements = driver.find_elements(By.XPATH,"/html/body/main/div[2]/div/div[2]/table/tbody")
res_header=driver.find_element(By.ID,'itl-header')
print(res_header.text)

通过xpath找到tbody里面所有行,遍历并打印内容

tr_elements = driver.find_elements(By.XPATH,"/html/body/main/div[2]/div/div[2]/table/tbody")
for tr in tr_elements:# 在这里对每个tr元素进行操作,例如提取文本内容print(tr.text)

随便定位一个漏洞介绍的链接点进去:

link = driver.find_element(By.PARTIAL_LINK_TEXT, "AVD-2024-21177")
link.click()
all_windows = driver.window_handles  # 获取所有窗口的句柄
driver.switch_to.window(all_windows[-1])#有的浏览器并不会自动跳转到点开的标签页,所以可以获取当前所有标签页再利用函数跳转

打印所有class="border-bottom border-gray pb-2 mb-0"的元素

searchclass=driver.find_elements(By.CSS_SELECTOR, '.border-bottom.border-gray.pb-2.mb-0')
for search in searchclass:print(search.text)

因为class的值包含空格所以不能直接By.CLASS寻找,用By.CSS_SELECTOR,每个值用点号分隔

关闭浏览器

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

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

相关文章

DCN V2 Improved Deep Cross Network and Practical Lessons for Web-scale Learning to Rank Systems

目录概DCN-v2Wang R., Shivanna R., Cheng D. Z., Jain S., Lin D., Hong L. and Chi E. D. DCN V2: Improved deep & cross network and practical lessons for web-scale learning to rank systems, 2020.概 DCN 的升级版. DCN-v2DCN-v2 的 cross/deep 的结合方式上有上述…

非结构化文档解析

参考:RAG效果优化:高质量文档解析详解知识库 RAG的核心之一就是知识库的离线存储,如何将非结构化文档存储是非常重要的。PDF和Word文件结构word文件解析pdf文件解析Papermage介绍总结阿里云上的文件解析方法示例准确率参考

ChatMoney让你变成HR高手!

本文由 ChatMoney团队出品在快节奏的现代职场中,招聘是每一个企业都绕不开的重要环节。然而,传统的招聘流程往往繁琐而低效,从海量简历的筛选,再到后续的评估与决策,每一个环节都耗费着HR人员大量的时间和精力。幸运的是,随着人工智能技术的飞速发展,AI人力资源顾问正逐…

告别繁琐招聘,AI人力资源顾问让你秒变HR高手!

本文由 ChatMoney团队出品在快节奏的现代职场中,招聘是每一个企业都绕不开的重要环节。然而,传统的招聘流程往往繁琐而低效,从海量简历的筛选,再到后续的评估与决策,每一个环节都耗费着HR人员大量的时间和精力。幸运的是,随着人工智能技术的飞速发展,AI人力资源顾问正逐…

【整理】【网络基础知识】数字签名

数字签名的特点: 接收者能够核实发送者对报文的签名。报文鉴别 接收者确信所收到的数据和发送者发送的完全一样没有被篡改过。报文的完整性 发送者事后不能抵赖对报文的签名。不可否认秘钥分配(KDC,CA):参考🔗: https://mp.weixin.qq.com/s/e7jBXV2ukLqIj6l42jew7A

24 个很棒的开源 Rust 项目

【转】https://devpress.csdn.net/opensource/62f483cd7e668234661885ef.html 24 个很棒的开源 Rust 项目 Rust 有一个非常活跃和快节奏的开源生态系统,有大量的贡献者致力于大量的很棒的项目。 如果你问——我可以在 Rust 中构建什么?答案几乎是一切。 本文将介绍一些开源 Ru…

【Visual Studio】安装SVN插件

前期准备 已有SVN服务器路径账号、密码或本机上已安装SVN Server 在本机安装TortoiseSVN(即SVN客户端) 网址 安装地址:https://www.visualsvn.com/visualsvn/download/ 。选择自己的Visual Studiod对应的版本。关闭VS。按步骤安装好,即可 有志者,事竟成,破釜沉舟,百二秦…

SINGLE论文阅读笔记

Modeling User Viewing Flow Using Large Language Models for Article Recommendation论文阅读笔记 Abstract ​ 本文针对文章推荐任务提出了用户浏览流建模方法(SINGLE),该方法从用户点击的文章中建立用户恒定偏好和即时兴趣模型。具体来说,我们首先采用用户恒定浏览流建…

产品经理面试宝典:阿里、字节、百度、腾讯、拼多多等全国顶级大厂面试题一网打尽!

​在互联网行业蓬勃发展的今天,产品经理作为连接技术、设计和市场的核心角色,其重要性日益凸显。想要进入国内顶尖的互联网大厂,如阿里巴巴、字节跳动、百度、腾讯、拼多多等,产品经理岗位的面试无疑是一场硬仗。本文将为你揭秘这些大厂的产品经理面试真题,并提供参考答案…

袋鼠云《数据资产管理白皮书》重磅发布,提供数据资产管理新思路,激发数据资产新动能(附下载)

近年来,政府将数据要素纳入了经济发展的重要指示性文件当中,数据作为一种新型生产要素,已经成为第五大生产要素。 要实现数据要素的市场效能,真正发挥数据生产要素的作用,离不开数据资产化,而数据资产化自然也离不开数据资产管理这一基础工作。数据资产管理是释放数据要素…

设置程序开机自动启动

win+R输入shell:startup 把需要开机自动启动的程序的快捷方式拖进去即可.

Maven篇

1、什么是 maven ? maven 主要服务于基于 java 平台的项目构建,依赖管理和项目信息管理。 maven 项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。它包含了一个项目对象模型,一组标准集合,一个项目生命周期,一个依赖管理系统…