Python Selenium 获取动态网页指定元素的超链接

news2025/1/12 12:15:32

Python Selenium 获取动态网页指定元素的超链接

  • 前言
  • 前提条件
  • 相关介绍
  • 实验环境
  • 获取动态网页指定元素的超链接
    • 目标网址
    • 代码实现

前言

  • 本文是个人使用Python Selenium 获取动态网页指定元素的超链接的电子笔记,由于水平有限,难免出现错漏,敬请批评改正。
  • 更多精彩内容,可点击进入Python日常小操作专栏或我的个人主页查看

前提条件

  • 熟悉Python
  • 熟悉Requests
  • 熟悉XPath
  • 熟悉Selenium

相关介绍

  • Python是一种跨平台的计算机程序设计语言。是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越多被用于独立的、大型项目的开发。
  • Requests是一个很实用的Python HTTP客户端库。
  • Lxml是XML和HTML的解析器,其主要功能是解析和提取XML和HTML中的数据;lxml和正则一样,也是用C语言实现的,是一款高性能的python HTML、XML解析器,也可以利用XPath语法,来定位特定的元素及节点信息。
  • XPath 是一门在 XML 文档中查找信息的语言, XSLT 中的主要元素,XQuery 和 XPointer 均构建于 XPath 表达式之上。
  • Selenium 是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera,Edge等。这个工具的主要功能包括:测试与浏览器的兼容性——测试应用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能——创建回归测试检验软件功能和用户需求。支持自动录制动作和自动生成.Net、Java、Perl等不同语言的测试脚本。

实验环境

  • Python 3.x (面向对象的高级语言)
  • Requests(Python第三方库)pip3 install requests
  • Lxml(python第三方库)pip3 install lxml
  • Selenium 4.1.0(Python第三方库) pip3 install selenium==4.1.0

获取动态网页指定元素的超链接

目标网址

https://www.zhipin.com/
在这里插入图片描述

代码实现

import time
from selenium import webdriver
from selenium.webdriver.common.by import By

# chrome_options = webdriver.ChromeOptions()
# # # 增加无界面选项
# # chrome_options.headless = True
# # 增加无界面选项
# chrome_options.add_argument('--headless')
# # 如果不加这个选项,有时定位会出现问题
# chrome_options.add_argument('--disable-gpu')
# driver = webdriver.Chrome(options=chrome_options)

options = webdriver.ChromeOptions()
options.add_experimental_option('excludeSwitches', ['enable-logging'])

# 打开谷歌驱动
driver = webdriver.Chrome(options=options)
# 打开火狐驱动, 下载的是哪个驱动就用所对应的驱动名打开,这里我使用的是谷歌
# driver = webdriver.Firefox()
# 输入需要搜索的网址,这里直接输入boos的首页网址,也可以根据自己的需要来输入对应的网址,修改括号中的网址即可
driver.get("https://www.zhipin.com/web/geek/job?query=AI算法工程师")
# implicitly_wait(): 隐式等待
# 当使用了隐士等待执行测试的时候,如果
# WebDriver没有在
# DOM中找到元素,将继续等待,超出设定时间后则抛出找不到元素的异常
# 换句话说,当查找元素或元素并没有立即出现的时候,隐式等待将等待一段时间再查找
# DOM,默认的时间是0
# 一旦设置了隐式等待,则它存在整个
# WebDriver
# 对象实例的声明周期中,隐式的等到会让一个正常响应的应用的测试变慢,
# 它将会在寻找每个元素的时候都进行等待,这样会增加整个测试执行的时间。
driver.implicitly_wait(10)
all_links = []
# 超链接
links=driver.find_elements_by_xpath('//*[@id="wrap"]/div[2]/div[2]/div/div[1]/div[2]/ul/li/div[1]/a')
for i in links:
    all_links.append(i.get_attribute('href'))
print('all_links:\n':all_links)
# 关闭浏览器
driver.quit()
all_links:
['https://www.zhipin.com/job_detail/51130f7cf022920c1nZ72tm4F1BS.html?lid=2u4NYccXIT6.search.1&securityId=Wrf6Ju0q891dB-v1-KH4S3MEZ6XB5SqDB_1Fp7sEOGhhdMQpoPnFeQBPYifubMCJ1iOa-PXgN5UiRSKqV-XZZwnL_uoZQiluwP8Kq8exEJgIsfQsKPZu&sessionId=',
'https://www.zhipin.com/job_detail/7634a64b01109ed51XF52tu5FFpU.html?lid=2u4NYccXIT6.search.2&securityId=oDlK2lguTb4eX-M1yrqXbbh5TH1j7RS3eqy-ArQEneYjgbFolwR2PPyGbbRBloLpBJHbT3AnRsU8emKTjqSEpENaaxCGAQ70oGfyDQDrEG21vV4BTw~~&sessionId=', 
'https://www.zhipin.com/job_detail/cc2370d01d570b5f0XZ80967ElQ~.html?lid=2u4NYccXIT6.search.3&securityId=MZnPCmBEEgEuJ-Y1qbNCS-1p9d4JkX3sVCSWLjjds10wKf95TOWnoYxqMzKlHZ1CLO-1TnUjabnGixzyNUceSvr6FyPPuSUxX2tTv8O7EsEjv3O_&sessionId=', 
'https://www.zhipin.com/job_detail/4c9e6e7ede9dd95a1XF62d26EVRT.html?lid=2u4NYccXIT6.search.4&securityId=JGkGN673lbp85-W149dR6DaRzOf5wcDIewGU3c52-EIyZ8s5EsHNaqNdc5PjHnXc5WWwJECjAikjAuzRvN2kZSt80dPGnOkLO_o8fgsuGNoIZerW5JM~&sessionId=', 
'https://www.zhipin.com/job_detail/e5501e5949ed4c0c1nZz2tm8ElZT.html?lid=2u4NYccXIT6.search.5&securityId=Tg1bEND7CL5dr-N1ocgrg1AjE8Hiy_0W3jeqblLj_cJ91dZ9K_fUN_vlKCHW-eJGHZeCaoxTy6MRUk_30GfKekqof1l1NBuk3CgAF0BRMis7FWdqgw~~&sessionId=', 
'https://www.zhipin.com/job_detail/b083288fd86f60341Xd40968GVBT.html?lid=2u4NYccXIT6.search.6&securityId=lOb153Refp1jY-j124U-9vdL8OVpfDoeJsYd3qAaszGlUga35frIuFzQFr28GXkSNHHS6Xerv1HtjEEIpIVOsnfkoyN7JoCowgtIP9y0c3cIJ5fBBA~~&sessionId=', 
'https://www.zhipin.com/job_detail/f1935b91115865b71Xd73Nm7E1BZ.html?lid=2u4NYccXIT6.search.7&securityId=no9awCmwc9ENF-c1Yhm-ooEXLFmUPEmSrVVBHb486rL6sF8nQR-gg3fJ8CoXn3r-M_NYvZMyguu7E2-Vtr5OB1SYuzTOUp7td8eMhHhnEsWAmDV81A~~&sessionId=', 
'https://www.zhipin.com/job_detail/c17bb1992367d5391nFy39y5E1JT.html?lid=2u4NYccXIT6.search.8&securityId=8yDZPiRjHPNeV-X19P8eh-81r_7dUDzXpv32APys-CFyvc2RtJVu1UU2Y1z176G0HvM9eZYLwIz1HX_vHFBwiAOhjhKDFuCDGWB4u740_jYg0cRxS6I~&sessionId=', 
'https://www.zhipin.com/job_detail/1426b6ff57d2db7e1XB92N6-GFNW.html?lid=2u4NYccXIT6.search.9&securityId=oEnznOvwjDI3W-W1VWvfVyHw2kFqcyE_tbWHZquef1mvOsZImuE6oxLU-PUuLGpJOXfseJ15796BYtm2cE84vG9xuXZ3j-nyx3wnIKSH0SY9pnBThkY~&sessionId=', 
'https://www.zhipin.com/job_detail/8d14dd627bd80af81n173tq9FFpY.html?lid=2u4NYccXIT6.search.10&securityId=3qGNKBq74pbCs-813w9Exyl9z3fvSQQy4ZVTZWHGFH0s-O8xvQZf596-b7Gsegf5RxmTPeE1IwwoIEIMh49VBbo1dV-kugJRV9rU7rCgA9w0FBgBuA~~&sessionId=', 
'https://www.zhipin.com/job_detail/6538d1ae0f1e07ea0X1_29i8EVQ~.html?lid=2u4NYccXIT6.search.11&securityId=xLw96mBuLIPX4-u1m5FsIID-G0-2uMwuBMeowYgXwohjjkIK3_8OCZC_awlG2qik8ZgOBKOjK9fporTq8CdFYYNO_neuNyoeC43RY7vJ17ji4A9z&sessionId=', 
'https://www.zhipin.com/job_detail/c7d67e5791040d2f1XB63dy4FVdW.html?lid=2u4NYccXIT6.search.12&securityId=hVNq6XqfJIYpB-J1nN5KVNIgzSVefGZVXFRrfnQZmV1jyUgd2NEHzEElOdnZPfic1dHx1jWV9ohIllZeJm0sYQl-Ci3IkiEVuxXzSR2XdKztHeqoSw~~&sessionId=', 
'https://www.zhipin.com/job_detail/11307d89f7002a641XF42N24F1FY.html?lid=2u4NYccXIT6.search.13&securityId=1mIvbYuaUlVf7-s192IXpv2ovP66NRGNzB5SVdWJ6DD2pZMEc_F8pKC34iSljZJQs6cGodVIVG5jUzk9IriSLocMO4CxvO-SyoaWyatEPtPaWTQi77w~&sessionId=', 
'https://www.zhipin.com/job_detail/648e24692691756b1XF63N-5GFpU.html?lid=2u4NYccXIT6.search.14&securityId=-VF0MDVs3u35I-I1Yok_LwTiYiSpXsxsxkPoUjrvDXcjGqc65CyWlmTKeqTiUUnvfdBBZbtoKj8YkMfLMInGc3ca028svXTuUlI9qMJ70Z2E5TMG&sessionId=', 
'https://www.zhipin.com/job_detail/876263a9f6ff67821nF62Nu9EVJQ.html?lid=2u4NYccXIT6.search.15&securityId=ID_TMnru4dmH3-Q1sMsOu_tAOyyr28xA4atYMSOLih2MSZglfPmbJnDey9fGoX3H7Ajhq2gfFDsIRePStIL-YBf3ejuyhWHxJwnK2YnV5th0touNuQ~~&sessionId=', 
'https://www.zhipin.com/job_detail/93fa6b26874889b11XB_2t-6FltR.html?lid=2u4NYccXIT6.search.16&securityId=vSB0onzr-1bRT-E1D6QlWdJlVlZb-3_lJiW_WYNJ1chOIs_WVlOa2hIS8r9IRQZMOWP7xN_aaxl7ZgFmend2TFjHvtK5jmJ9VRi-Z_1tM8qWQ9s7ia5v&sessionId=', 
'https://www.zhipin.com/job_detail/3b16bfb732d48f0e1XR509--EFJQ.html?lid=2u4NYccXIT6.search.17&securityId=QS2k4km47ReZ7-b1crpZw5BA_3fVtifvRorS5gSWW-QzbNuyhdoI3CALKpRwby045LY8smmC12g5ZfN5tA9vRVVPzraQmh6OCwY3HoaUEBvvWvmIOpw~&sessionId=', 
'https://www.zhipin.com/job_detail/620ab2873e7b6d611n1_0920F1BS.html?lid=2u4NYccXIT6.search.18&securityId=eg8rJyP34wrgf-v1TShFLmFg-l7q-7NP7XxbyBtBjes9CFZkpChq4NhRS1uibKk-9yd95m5kC7mjFVwVtbswVD1YAMRMVKgZliiyrZ7uM3a3s1sM9e4~&sessionId=', 
'https://www.zhipin.com/job_detail/7507d3c13c19d0ea1nJ709i0EVNU.html?lid=2u4NYccXIT6.search.19&securityId=FkIOur07GILxV-j1srQmAMPHo9e2QL5kVyqeugujI25YkJUz_JhtwSYZ_QBN_9CczLaxTa88snUAH2uMmBHT7mLWm_Bejs-rI_68maLixkgKGyGoFQ~~&sessionId=', 
'https://www.zhipin.com/job_detail/3eb26c73fdfea05e1Xdy09m1EFNW.html?lid=2u4NYccXIT6.search.20&securityId=mrMOyVV1-rLpZ-L11YRlCh6iLQ51-EybD8SyZKxieRBiaXX_AcyH--tF0jVgR8Pt7ZKY3ONVihWHc-G68A_s1yE3ys5W3-ZfsIwfBHtD4E1USZZEX6A~&sessionId=', 
'https://www.zhipin.com/job_detail/214537274f3b8def1XV90t-_FldZ.html?lid=2u4NYccXIT6.search.21&securityId=yDUKAWzTIUMON-E1ANnN9oKEXVrJVaXj-B_Gqx7nvEQ_nBfL5wAIWVCRPywfJOnxkbk3S1vLwpud1RcttKJrrKsSkG6flVJvR-GWSW_ZBpH8U_CDww~~&sessionId=', 
'https://www.zhipin.com/job_detail/2a728edb6c98854e3nV93tm7ElU~.html?lid=2u4NYccXIT6.search.22&securityId=7lACZthfL5-2k-A1XD9zd3G4LpMdfUIhSgdcon9UDOKcD3VSa3_UIUlNEeEVqS31c81XB929W-EltX.html?lid=2u4NYccXIT6.search.23&securityId=ydly6xajXCxz2-Z13QPs7clJQhwEk2brx0pFH94T-twmDmSIBKM3dLo-z4crjdbWC18wxj4xrQZ2ZdLoZwfLWZfOqC_CRtMKKlCVVq4GCX0VUnFZZC4~&sessionId=', 
'https://www.zhipin.com/job_detail/4b34a687816d4b6a1XZ529S0FlZZ.html?lid=2u4NYccXIT6.search.24&securityId=XPdhBlAs2a7Wr-_1Crcu_FVbIl9kUjigiapTYQTbBERz-QVKPmeTf7TT_YPia0y8RDv5crn5EJJOHXtOizRW_p_Pbnvxyppb2hYzcs7b-yTD60BqJQ~~&sessionId=', 
'https://www.zhipin.com/job_detail/e0f13a2d5afb919e1XZ43dm6FlFX.html?lid=2u4NYccXIT6.search.25&securityId=JHpoTGIllDTWz-41j8IDGteCA5sRXCCXdZQdU3_MeAJOio-rv0HMsrAvqxOlghX6M7Z62CrH7v-Rv7BJJqfu4UcHF4I1JZrN6QdfR3tR5WP14b4J5Q~~&sessionId=', 
'https://www.zhipin.com/job_detail/7d3d524dbd64b92f1XB-3N61EFNR.html?lid=2u4NYccXIT6.search.26&securityId=I67CL5DLTqhbT-E12sAj57OTTRY1oX0E3xFqs_l0miBCoeKsxOWPt_j1YJGe0e0KgEwFdVZKYe4TbikUec4RV_1_JcmVwWwD1qK6qWFN87kXduBDPOs~&sessionId=', 
'https://www.zhipin.com/job_detail/75a1767b3779781e1n142d-0F1JS.html?lid=2u4NYccXIT6.search.27&securityId=jW7SHWIWK67xH-G1_UkokmVqoZqvWqfP3RRCqK1hrnHZeTR_LbgRFGnJmHKnOEoqKYUvNEzvK6Z3g-2_OvGGJgGCmLzJUxgXvfLm8o10H8w0DBnNxsmL&sessionId=', 
'https://www.zhipin.com/job_detail/74084650d3ef7c7f1XR72tu7EFNX.html?lid=2u4NYccXIT6.search.28&securityId=gaYBuF_s7iF5x-s1XWg07odOcl11GrbSNEyXlRWLenHjAvYT__lPujMYtkUsso3tDjQ2OyaMRRUYFosM4TmP2mSRrlYrRRzTZ1TK41d6OTTTdvZ7-lM~&sessionId=', 
'https://www.zhipin.com/job_detail/c10b1224f7fb3a6e1XB_3dW8FFpU.html?lid=2u4NYccXIT6.search.29&securityId=4GxZox2AmPZg--W1TK4akbtADgYHAm6UcC44faW4HMZiJgqUNYQmd_HytPJ2ZMzCEjs68nJ0tPaz6khdpCGY5NAdxFnYfgIFHT4LI-ELFc-HP1_RZ34~&sessionId=', 
'https://www.zhipin.com/job_detail/19ce985daea5046c1Xd50t68E1VU.html?lid=2u4NYccXIT6.search.30&securityId=LpJtJoDlZq1tc-k1yPTHpOkWYneArdICQ14ktVUWO8FaW-xqcwBHAtnNB38iamjFBCLE3l6zDGBPET338fnepvzyaXHlczk2XTn4C-wwi3n9FbwVAQ~~&sessionId=']

更多精彩内容,可点击进入Python日常小操作专栏或我的个人主页查看

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

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

相关文章

详解浮点数在内存中的存储

目录 前言 一、 32 位单精度浮点数在内存中的存储 1.1 - 符号位 sign 1.2 - 偏移后的指数位 biased exponent 1.3 - 尾数位 fraction(mantissa) 二、64 位双精度浮点数在内存中的存储 三、浮点数的比较 前言 计算机内部实际上只能存储和识别二进制…

IPV6相关

目录 一、IPV6地址组成与专业术语 1.基础分类 2.本地链路地址范围区域概念 3.本地环回地址 二、centos配置IPV6地址 1.终端命令配置IPV6地址和网关 2.文件中配置IPV6地址 三、IPV6连通测试 1.全局单播地址进行ping 一、IPV6地址组成与专业术语 1.基础分类 IPv6基础知…

对话开发者:Serverless 落地的困境与破局

作者 | 阿里云开发者社区、InfoQ 从 2012 年提出 Serverless 到今年 2022 年刚好十年。 过去十年,上云是确定性趋势,在这个阶段企业一开始的关注点在于如何实现平滑上云。随着越来越多的企业上云,甚至很多企业系统第一天就是在云上构建&…

7-2 出生年

以上是新浪微博中一奇葩贴:“我出生于1988年,直到25岁才遇到4个数字都不相同的年份。”也就是说,直到2013年才达到“4个数字都不相同”的要求。本题请你根据要求,自动填充“我出生于y年,直到x岁才遇到n个数字都不相同的…

【数据结构与算法——C语言版】5. 排序算法(1)——冒泡排序

前言 上篇文章【数据结构与算法——C语言版】4. 排序算法(1)——选择排序我们介绍了排序算法中的选择排序,其时间复杂度是O(n2),本篇文章我们将介绍另一种同样时间复杂度是O(n2)的排序算法——冒牌排序,这两种算法思路…

面向对象编程看这一篇文章就够了

第一章 面向对象和面向过程 面向对象(OOP[Object Oriented Programming])和面向过程(POP[procedure oriented programming])都是一种软件编程设计思想 1. 面向过程强调功能行为 2. 面向对象是将功能封装进对象,强调具备了功能的对象 3. 面向对象强调运用人类在日常的思维逻辑中…

Java 程序员都该懂的 HashMap

HashMap 一直是非常常用的数据结构,也是面试中十分常问到的集合类型,今天就来说说 HashMap。 但是为什么要专门说明是 Java8 的 HashMap 呢?我们都知道,Java8 有很多大的变化和改动,如函数式编程等,而 Hash…

SpringBoot 请求参数处理详解

目录 请求参数处理 0、请求映射 1、rest使用与原理 1、普通参数与基本注解 1.1、注解: 1.2、Servlet API: 1.3、复杂参数: 1.4、自定义对象参数: 2、POJO封装过程 3、参数处理原理 1、HandlerAdapter 2、执行目标方法…

maplab2.0安装

项目链接: GitHub - ethz-asl/maplab: An open visual-inertial mapping framework. 安装流程很简单.按照github流程安装就行,建议使用脚本自动安装, 安装指南: https://maplab.asl.ethz.ch/docs/master/pages/installation/A_Installation-Ubuntu.html 值得注意的点包括: 1…

【阶段二】Python数据分析数据可视化工具使用03篇:词云图与相关性热力图

本篇的思维导图: 词云图 词云图(word cloud chart)是通过使每个字的大小与其出现频率成正比,显示不同单词在给定文本中的出现频率,然后将所有的字词排在一起,形成云状图案,也可以任何格式排列:水平线、垂直列或其他形状,也可用于显示获分配元数据的单词。在词云…

2022 OpenMLDB 硕果累累,颁奖台上荣耀连连

岁末年初, 既是回望过去和规划未来的日子, 也是总结成长与收获成果的时间。 2022 年即将结束之际, OpenMLDB 在颁奖台上惊喜连连, 获得了 IT168 和 中国开源云联盟 的认可。 技术改变世界,创新引领未来。业界知名 IT…

Redis缓存穿透、缓存击穿、缓存雪崩详解

缓存处理流程接收到查询数据请求时,优先从缓存中查询,若缓存中有数据,则直接返回,若缓存中查不到则从DB中查询,将查询的结果更新到缓存中,并返回查询结果,若DB中查不到,则返回空数据…

PSR规范

PSR规范 PSR 不是PHP官方标准,而是从如Zend、Symfony2等知名PHP项目中提炼出来的一系列标准,目前有越来越多的社区项目加入并遵循该标准。 PSR-0 自动加载 X已废弃 PSR-1 基本代码规范 PSR-2 代码样式 PSR-3 日志接口 PSR-4 如何指定文件路径从而自动加载…

怎么搭建自己的网站赚钱,个人网站怎么操作

大家好,我是蝶衣王的小编接触过互联网的应该很多都想过能不能搭建自己的网站赚钱,无论是用来带货,引流,还是做广告都会是一笔不错的收入,而且网站做好之后打理起来简单,后期工作量也是比较小的,…

【论文简述】Vis-MVSNet: Visibility-Aware Multi-view Stereo Network(IJCV 2022)

一、论文简述 1. 第一作者:Jingyang Zhang 2. 发表年份:2022 3. 发表期刊:IJCV、BMVC 4. 关键词:MVS、可见性、MVSNet 5. 探索动机:MVS的可见性 One critical factor in MVS is the pixel-wise visibility: whet…

Clion配置导致中文乱码问题 char长度限制导致中文乱码问题

🍰 个人主页:__Aurora__ 🍞如果文章有什么需要改进的地方还请各位大佬指正。 🍉如果我的文章对你有帮助➡️ 关注🙏🏻 点赞👍 收藏⭐️ 问题1:中文乱码问题(配置原因) #…

【Linux】复制进程、了解逻辑地址以及写实拷贝

目录 fork()方法原型 父子进程 父子进程的pid 物理地址和逻辑地址 写实拷贝 fork()方法原型 pid_t fork(void); pid_t是int类型代表进程的pid号 Linux内核2.4.0定义: typedef int __kernel_pid_t; typedef __kernel_pid_t pid_t; 每一个进程的pid都是唯一…

MySQL多实例管理(mysqld_multi)

定义:就是在一台mysql机器上开启多个不同的服务端口(如:3306,3307),运行多个MySQL服务进程,通过不同的socket监听不同的服务端口来提供各自的服务 1.MySQL多实例介绍 1.1.什么是MySQL多实例 MySQL多实例就…

移动智能终端安全技术要求及测试评价方法

声明 本文是学习移动智能终端安全技术要求及测试评价方法. 下载地址 http://github5.com/view/627而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 移动智能终端测试评价方法 硬件安全 硬件安全的测试方法、预期结果和结果判定如下: a&am…

版本控制 | 一文了解虚拟制作,进入影视制作新赛道

作为一种能够引领未来趋势,颠覆影视制作流程的全新技术,虚拟制作已经慢慢普及到影视制作领域。嗅觉灵敏的资本和目光前瞻的大厂纷纷布局虚拟制作赛道。阅读本篇文章,您将了解到什么是虚拟制作,它的优势所在、如何开展虚拟制作以及…