网络爬虫(二)——Xpath和Selenium的使用

这篇具有很好参考价值的文章主要介绍了网络爬虫(二)——Xpath和Selenium的使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

2 网络爬虫进阶

2.1 Xpath

虽然正则表达式处理字符串的能力很强,但是在编写正则表达式的时候代码还是比较麻烦的,如果不小心写错一处,那么将无法匹配页面中所需要的数据,因为网页中包含大量的节点,而节点中又包含id、class等属性。如果在解析页面中的数据时,通过Xpath来定位网页中的数据,将会更加简单有效。

相比于bs4,Xpath功能更加强大,不仅提供非常简洁明了的路径选择表达式,还提供了超过 100 个内建函数,用于字符串、数值、时间比较、序列处理、逻辑值等,几乎所有定位的节点都可以用 Xpath 来选择。

2.1.1 Xpath解析原理

在使用Xpath解析时,我们首先要做的是导入etree模块,且需要使用etree下的方法将被解析的页面源码数据加载到etree对象中。在实例化完成后,我们可以调用etree对象中的xpath方法结合xpath表达式实现标签的定位和内容的捕获。

这里需要注意的是,etree模块是在lxml包下的模块,导入方式为:

from lxml import etree

如何将HTML数据加载到etree模块中?

  • 如果是本地的html文档,那么通过etree.parse(filepath)方法可以将源码数据加载到etree对象中。
  • 如果是互联网的源码数据,则使用etree.HTML(‘page_text’),其可以将源码数据加载到etree对象中。

2.1.2 信息提取

当将解析后的HTML页面加载到etree对象后,想要获取某个标签的信息,就需要用到定位。

2.1.2.1 获取所有结点

如果不加筛选,想要获取所有信息,则xpath方法中的表达式只需填入//*即可。

from lxml import etree

Testhtml = """<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>心得体会——尘鱼</title>
</head>
<body>
    <h1>浮世三千</h1>
    <hr>
    <h2>文章内容</h2>
    <p>无非两种人:一种是做了,没成功,所以焦虑;一种是没做,要迎接失败了,所以焦虑。人常常会把自己的所得经验告诫未得之人,就如同许久之前高中的恩师一般念叨;人常常会抱怨世间的不公,想要改变眼前的一切;而人在经历了大起大落后回望,他们总是能发现:自己的付出不像童话里的那般美好,总能得到意外的对待。很少有些许的沉思,或者来自内心深处的拷问:自己至此,该干什么,身边的人说了那么多,自己该不该反思什么。致命的慵懒总是带来成堆的接口,漫天的抱怨似乎幽怨的黑洞,似乎解决的方法就像是时光隧道中那一丝薄弱的亮光微不可及;避开自己心里的拷问,避开一切的一切,似乎拖着拖着生活的美好就能如期而至。</p>
    <img src="https://images.cnblogs.com/cnblogs_com/blogs/710924/galleries/2086847/o_220115052557_5af17f7f881b11ebb6edd017c2d2eca2.jpg" alt="图片加载失败" title="该图片来源于尘鱼好美" weight="480" height="360">
    <p>“日常所得焦虑,无非是三天打鱼两天晒网,时而努力时而颓废所致。”</p>
    <p>约莫些许人同此言,却又忘却其 “人生的悲欢并不相同,他们只觉得你吵闹。
        <br>
        弃浮沉往事,探前方长路坎坷;弃勿须情感,奔自己心中所想。
        <br>
        繁琐的慥词现已无人愿细细品味,只愿将心中所得能与伯乐共享,足矣。</p>
        如果喜欢该案例可以关注我的网站
        <br>
        <a href="https://www.cnblogs.com/ChengYuHaoMei/">点此前往</a>
    <audio src="https://audio04.dmhmusic.com/71_53_T10051752137_128_4_4_0_sdk-cpm/cn/0103/M00/10/B5/ChR45F8hdhCAJ_unAAdXW5beNxE239.mp3?xcode=e20e7d6d765a63dc97d12357a8578f3cc746bc4" controls autoplay loop>
</body>
</html>
"""

tree = etree.HTML(Testhtml)
nodeall = tree.xpath("//*")
print("数据内容:", nodeall)

out:

网络爬虫(二)——Xpath和Selenium的使用

/和//的不同

/表示的是从根节点开始定位,表示的是一个层级。

//表示的是多个层级,可以表示从任意位置开始定位

比如说想要获取所有p标签,则无需从body开始,直接//p即可。

2.1.2.2 获取子节点

如果想要获取一个节点中的子节点,则使用/可以实现定位,如想要定位html标签下的head标签下的div标签,则可以写成

//html/head/div

我们试一下敲一下下面的代码:

from lxml import etree

Testhtml = """<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>心得体会——尘鱼</title>
</head>
<body>
    <h1>浮世三千</h1>
    <hr>
    <h2>文章内容</h2>
    <p>无非两种人:一种是做了,没成功,所以焦虑;一种是没做,要迎接失败了,所以焦虑。人常常会把自己的所得经验告诫未得之人,就如同许久之前高中的恩师一般念叨;人常常会抱怨世间的不公,想要改变眼前的一切;而人在经历了大起大落后回望,他们总是能发现:自己的付出不像童话里的那般美好,总能得到意外的对待。很少有些许的沉思,或者来自内心深处的拷问:自己至此,该干什么,身边的人说了那么多,自己该不该反思什么。致命的慵懒总是带来成堆的接口,漫天的抱怨似乎幽怨的黑洞,似乎解决的方法就像是时光隧道中那一丝薄弱的亮光微不可及;避开自己心里的拷问,避开一切的一切,似乎拖着拖着生活的美好就能如期而至。</p>
    <img src="https://images.cnblogs.com/cnblogs_com/blogs/710924/galleries/2086847/o_220115052557_5af17f7f881b11ebb6edd017c2d2eca2.jpg" alt="图片加载失败" title="该图片来源于尘鱼好美" weight="480" height="360">
    <p>“日常所得焦虑,无非是三天打鱼两天晒网,时而努力时而颓废所致。”</p>
    <p>约莫些许人同此言,却又忘却其 “人生的悲欢并不相同,他们只觉得你吵闹。
        <br>
        弃浮沉往事,探前方长路坎坷;弃勿须情感,奔自己心中所想。
        <br>
        繁琐的慥词现已无人愿细细品味,只愿将心中所得能与伯乐共享,足矣。</p>
        如果喜欢该案例可以关注我的网站
        <br>
        <a href="https://www.cnblogs.com/ChengYuHaoMei/">点此前往</a>
    <audio src="https://audio04.dmhmusic.com/71_53_T10051752137_128_4_4_0_sdk-cpm/cn/0103/M00/10/B5/ChR45F8hdhCAJ_unAAdXW5beNxE239.mp3?xcode=e20e7d6d765a63dc97d12357a8578f3cc746bc4" controls autoplay loop>
</body>
</html>
"""

tree = etree.HTML(Testhtml)
imgnode = tree.xpath("//body/img")
print("数据内容:", imgnode)

out:

网络爬虫(二)——Xpath和Selenium的使用

2.1.2.3 获取父节点

有时候从最外面的标签一步一步走里面可能会比较麻烦,从里面的标签一步一步走外面也不失为一种较好的方法。当我们想要获取一个节点的父节点时,可以使用..来实现。

from lxml import etree

Testhtml = """<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>心得体会——尘鱼</title>
</head>
<body>
    <h1>浮世三千</h1>
    <hr>
    <h2>文章内容</h2>
    <p>无非两种人:一种是做了,没成功,所以焦虑;一种是没做,要迎接失败了,所以焦虑。人常常会把自己的所得经验告诫未得之人,就如同许久之前高中的恩师一般念叨;人常常会抱怨世间的不公,想要改变眼前的一切;而人在经历了大起大落后回望,他们总是能发现:自己的付出不像童话里的那般美好,总能得到意外的对待。很少有些许的沉思,或者来自内心深处的拷问:自己至此,该干什么,身边的人说了那么多,自己该不该反思什么。致命的慵懒总是带来成堆的接口,漫天的抱怨似乎幽怨的黑洞,似乎解决的方法就像是时光隧道中那一丝薄弱的亮光微不可及;避开自己心里的拷问,避开一切的一切,似乎拖着拖着生活的美好就能如期而至。</p>
    <img src="https://images.cnblogs.com/cnblogs_com/blogs/710924/galleries/2086847/o_220115052557_5af17f7f881b11ebb6edd017c2d2eca2.jpg" alt="图片加载失败" title="该图片来源于尘鱼好美" weight="480" height="360">
    <p>“日常所得焦虑,无非是三天打鱼两天晒网,时而努力时而颓废所致。”</p>
    <p>约莫些许人同此言,却又忘却其 “人生的悲欢并不相同,他们只觉得你吵闹。
        <br>
        弃浮沉往事,探前方长路坎坷;弃勿须情感,奔自己心中所想。
        <br>
        繁琐的慥词现已无人愿细细品味,只愿将心中所得能与伯乐共享,足矣。</p>
        如果喜欢该案例可以关注我的网站
        <br>
        <a href="https://www.cnblogs.com/ChengYuHaoMei/">点此前往</a>
    <audio src="https://audio04.dmhmusic.com/71_53_T10051752137_128_4_4_0_sdk-cpm/cn/0103/M00/10/B5/ChR45F8hdhCAJ_unAAdXW5beNxE239.mp3?xcode=e20e7d6d765a63dc97d12357a8578f3cc746bc4" controls autoplay loop>
</body>
</html>
"""

tree = etree.HTML(Testhtml)
imgnode = tree.xpath("//img/..")
print("数据内容:", imgnode)

out:

网络爬虫(二)——Xpath和Selenium的使用

2.1.2.4 获取文本

如果想要使用XPath获取HTML代码中的文本时,可以使用text()方法。

敲一下下面的代码,体会上述的话。

from lxml import etree

Testhtml = """<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>心得体会——尘鱼</title>
</head>
<body>
    <h1>浮世三千</h1>
    <hr>
    <h2>文章内容</h2>
    <p>无非两种人:一种是做了,没成功,所以焦虑;一种是没做,要迎接失败了,所以焦虑。人常常会把自己的所得经验告诫未得之人,就如同许久之前高中的恩师一般念叨;人常常会抱怨世间的不公,想要改变眼前的一切;而人在经历了大起大落后回望,他们总是能发现:自己的付出不像童话里的那般美好,总能得到意外的对待。很少有些许的沉思,或者来自内心深处的拷问:自己至此,该干什么,身边的人说了那么多,自己该不该反思什么。致命的慵懒总是带来成堆的接口,漫天的抱怨似乎幽怨的黑洞,似乎解决的方法就像是时光隧道中那一丝薄弱的亮光微不可及;避开自己心里的拷问,避开一切的一切,似乎拖着拖着生活的美好就能如期而至。</p>
    <img src="https://images.cnblogs.com/cnblogs_com/blogs/710924/galleries/2086847/o_220115052557_5af17f7f881b11ebb6edd017c2d2eca2.jpg" alt="图片加载失败" title="该图片来源于尘鱼好美" weight="480" height="360">
    <p>“日常所得焦虑,无非是三天打鱼两天晒网,时而努力时而颓废所致。”</p>
    <p>约莫些许人同此言,却又忘却其 “人生的悲欢并不相同,他们只觉得你吵闹。
        <br>
        弃浮沉往事,探前方长路坎坷;弃勿须情感,奔自己心中所想。
        <br>
        繁琐的慥词现已无人愿细细品味,只愿将心中所得能与伯乐共享,足矣。</p>
        如果喜欢该案例可以关注我的网站
        <br>
        <a href="https://www.cnblogs.com/ChengYuHaoMei/">点此前往</a>
    <audio src="https://audio04.dmhmusic.com/71_53_T10051752137_128_4_4_0_sdk-cpm/cn/0103/M00/10/B5/ChR45F8hdhCAJ_unAAdXW5beNxE239.mp3?xcode=e20e7d6d765a63dc97d12357a8578f3cc746bc4" controls autoplay loop>
</body>
</html>
"""

tree = etree.HTML(Testhtml)
TextNode = tree.xpath("//body/p/text()")
print("数据内容:", TextNode)

out:

网络爬虫(二)——Xpath和Selenium的使用

2.1.3 属性匹配

2.1.3.1 单个属性匹配

如果想要获取通过标签中的属性来进行匹配,可以使用[@标签属性]来进行匹配。

敲一下下面的代码,体会这里所讲的知识点。

from lxml import etree

Testhtml = """<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div>
        <h1>《自然》评选改变科学的10个计算机代码项目</h1>
        <div class="top">
            <span id = "time">2077年01月28号日14:58</span> 
            <span id = "source">新浪科技 </span>     
            <a href="#">收藏本文</a>
            <hr>
            <p class="text">北京时间 1 月 26 日消息,据国外媒体报道,从 Fortran 到 arXiv.org,这些计算机编码和平台让生物学、气候科学和物理学等学科的发展达到了真正 “日新月异”的速度。</p>

            <p class = "text">2019 年,事件视界望远镜团队让世界首次看到了黑洞的样子。不过,研究人员公布的这张发光环形物体的图像并不是传统的图片,而是经过计算获得的。利用位于美国、墨西哥、
            智利、西班牙和南极地区的射电望远镜所得到的数据,研究人员进行了数学转换,最终合成了这张标志性的图片。研究团队还发布了实现这一壮举所用的编程代码,并撰文记录
            这一发现,其他研究者也可以在此基础上进一步加以分析。</p>
        </div>
    </div>
</body>
</html>

"""

tree = etree.HTML(Testhtml)
TextNode = tree.xpath("//span[@id ='time']")
print("数据内容:", TextNode)

out:

网络爬虫(二)——Xpath和Selenium的使用

2.1.3.2 多个属性匹配

如果你匹配的标签上面有多个属性,那么你可以通过@[属性1 and 属性2]来实现更加精确的定位,这个很简单,自己试试即可,这里不过多赘述。

3.1 Selenium

3.1.1 概述

Selenium是一个用于web应用程序测试的工具,其测试直接运行在浏览器中,就像真正的用户在操作一样。

Selenium还支持各种驱动,如IE驱动,谷歌驱动,火狐驱动等等,驱动真实浏览器完成测试。当然,其也支持无界面浏览器操作。

使用selenium可以达到真实打开浏览器操作的效果,还能使得网页中的js代码自动执行,实现动态加载。

3.1.2 安装

由于edge近年来给程序员的体验不错,故这里采用我使用edge而不是谷歌。

edge安装官方有详细介绍,这里不过多赘述。详见使用 WebDriver 自动执行 Microsoft Edge - Microsoft Edge Development | Microsoft Docs

如果看不懂也可以在这个博主里面学着安装(1条消息) Selenium驱动Edge浏览器_snrxian的博客-CSDN博客_edge selenium驱动

安装完成后试着打开一个py文件输出下面的代码运行一下。

from selenium import webdriver

//创建驱动对象
browser = webdriver.Edge()
browser.get('https://www.baidu.com')
browser.quit()

如果可以让脚本自己打开一个浏览器就安装成功了。

如果你想要返回浏览器打开页面后加载的源码,可以使用其驱动对象.page_source属性,可以返回源码。

3.1.3 元素定位

Selenium可以自动化模拟鼠标和键盘来操作这些元素,点击、输入等。而操作这些元素前需要先找到它们,WebDriver提供很多定位元素的方法。

方法 解释 find_element_by_class_name() 通过节点的 class 属性值定位 find_element_by_name() 通过节点的 name 属性名定位 find_element_by_id() 通过节点的 id 属性值定位 find_element_by_link_text() 通过超链接节点的文本定位 find_element_by_partial_link_text() 通过超链接节点包含的部分文本定位 find_element_by_tag_name() 通过节点名定位 find_element_by_xpath() 通过 Xpath 语法定位 find_element_by_css_selector() 通过 CSS 选择器定位

实际上,在以前老版本中find_element_by_[标签] ()可以用于查找对应的web表单组件,但是现在统一被归结为find_element("标签","标签值")

如果你还是听不懂,可以试着敲一下下面的代码,体会我说的意思。

from selenium import webdriver

# 1 创建对象
browser = webdriver.Edge()

# 2 获取网页
url = "https://www.baidu.com/"
browser.get(url)

# 3 元素定位
button = browser.find_element("id", "su")
print(button)

甚至于你前面学过了Xpath,你还可以使用find_element_by_xpath(“xpath表达式”)来进行定位。

如果你要获取多个表单组件,可以使用find_elements(“标签”,“标签值”),这里就不一一介绍了,在自己的脚本中改一改试一试就能懂了。

3.1.4 元素信息

如果想要获取某个表单组件的属性值,可以使用get_attribute(属性值)方法。演示如下:

from selenium import webdriver

# 1 创建对象
browser = webdriver.Edge()

# 2 获取网页
url = "https://www.baidu.com/"
browser.get(url)

button1 = browser.find_element_by_id("su")

print(button1.get_attribute("class"))

out:

网络爬虫(二)——Xpath和Selenium的使用

如果想要获取标签名,则可以使用tag_name()方法。

如果想要获取元素文本,则可以使用text()方法。这里需要稍加说明,元素文本指的是开始标签和结束标签中间夹着的文本。

3.1.5 交互

Selenium允许对Web页面进行简单的交互,如点击、滑动鼠标、前进、后退等操作。其适用于爬取一些滑到底部才能加载下一页的一些页面。

这里的知识点我也不做讲解,试着敲一下下面的脚本,你可以体会到点击、文本框输出、滑动页面等诸多操作。

from selenium import webdriver
import time

# 1 创建对象
browser = webdriver.Edge()

# 2 获取网页
url = "https://www.baidu.com/"
browser.get(url)

# 3 睡眠几秒
time.sleep(2)

# 4 获取文本框对象
input = browser.find_element("id", "kw")
time.sleep(2)

# 输入文本“周杰伦”
input.send_keys("周杰伦")
time.sleep(2)

# 5 获取百度一下的按钮
button = browser.find_element("id", "su")

# 6 点击百度一下按钮
button.click()
time.sleep(2)

# 7 滑到底部
js_bottom = 'document.documentElement.scrollTop = 100000'
browser.execute_script(js_bottom)
time.sleep(2)

# 8 获取下一页按钮
next = browser.find_element("xpath", "//a[@class = 'n']")

# 9 点击下一页
next.click()
time.sleep(2)

# 10 回到上一页
browser.back()
time.sleep(2)

# 11 回去
browser.forward()
time.sleep(3)

# 12 退出
browser.quit()

3.1.6 Chrome handless

Chrome-headless模式是Google针对其浏览器59版新增加的一种模式,可以让你在不打开UI界面的情况下使用Chrome浏览器,这无疑为Selenium的使用提高了运行速度。

由于我使用的是Edge浏览器,爬的东西一般也不多,所以关于这部分我就不细讲了,如果有需要的,自己查个博客学一学,很简单的,加油!文章来源地址https://www.toymoban.com/news/detail-437913.html

到了这里,关于网络爬虫(二)——Xpath和Selenium的使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python 爬虫之 requests模块(ua伪装、代理、cookies、防盗链 Referer)、re模块、xpath模块、selenium

    下载 发送 get 请求 案例:百度 发送 post 请求 案例:百度翻译 UA 伪装 代理 cookies 登录 案例:17k小说网 防盗链 Referer 案例:梨视频 findall search finditer 预加载 提前写好正则表达式 匹配换行 re.S 在 html 中使用 原子组使用别名 爬取豆瓣电影 https://movie.douban.com/chart lxml.etree.XMLSy

    2024年01月24日
    浏览(41)
  • python爬虫进阶篇:Scrapy中使用Selenium模拟Firefox火狐浏览器爬取网页信息

    接着上一篇的笔记,Scrapy爬取普通无反爬、静态页面的网页时可以顺利爬取我们要的信息。但是大部分情况下我们要的数据所在的网页它是动态加载出来的(ajax请求后传回前端页面渲染、js调用function等)。这种情况下需要使用selenium进行模拟人工操作浏览器行为,实现自动化

    2024年02月04日
    浏览(78)
  • python爬虫从0到1 -selenium的基本使用(1),非常适合收藏的Python进阶重难点笔记

    5.根据标签名字来获取对象 button = browser.find_element_by_tag_name(‘input’) 6.通过当前页面中的链接文本来获取对象 button = browser.find_element_by_link_text(‘新闻’) (五)selenium访问元素信息 ==================================================================================== 例: 1.获取元素属性的属性值

    2024年04月09日
    浏览(53)
  • Scala语言使用Selenium库编写网络爬虫

    目录 一、引言 二、环境准备 三、爬虫程序设计 1、导入必要的库和包 2、启动浏览器驱动程序 3、抓取网页内容 4. 提取特定信息 5. 数据存储和处理 四、优化和扩展 五、结语 网络爬虫是一种自动抓取互联网信息的程序。它们按照一定的规则和算法,遍历网页并提取所需的信

    2024年02月03日
    浏览(44)
  • python爬虫进阶篇:Scrapy中使用Selenium+Firefox浏览器爬取沪深A股股票行情

    上篇记录了Scrapy搭配selenium的使用方法,有了基本的了解后我们可以将这项技术落实到实际需求中。目前很多股票网站的行情信息都是动态数据,我们可以用Scrapy+selenium对股票进行实时采集并持久化,再进行数据分析、邮件通知等操作。 详情请看上篇笔记 items middlewares setti

    2024年02月04日
    浏览(66)
  • 网络爬虫开发(五)01-爬虫高级——Selenium简介 & 根据平台选择安装selenium-webdriver包 & Selenium的基本使用

    网络爬虫开发(五)01-爬虫高级——Selenium简介 根据平台选择安装selenium-webdriver包 Selenium的基本使用 学习目标: 使用Selenium库爬取前端渲染的网页 反反爬虫技术 官方原文介绍: Selenium automates browsers . That’s it! What you do with that power is entirely up to you. Primarily, it is for automating web

    2024年01月24日
    浏览(38)
  • 〖Python网络爬虫实战㉛〗- Selenium 的其他操作使用

    订阅:新手可以订阅我的其他专栏。免费阶段订阅量1000+                 python项目实战                  Python编程基础教程系列(零基础小白搬砖逆袭) 说明:本专栏持续更新中,目前专栏免费订阅,在转为付费专栏前订阅本专栏的,可以免费订阅付费专栏,

    2024年02月16日
    浏览(43)
  • Python爬虫|基础知识点详细汇总(requests、urllib、re、bs4、xpath、PyQuery、jsonpath、多线程、协程、数据保存、selenium)

    1. 请求数据 ① requests (1) 基本使用 参数 对响应内容的操作 (2) Requests进阶:使用Session 为什么要用 Session? Session代表服务器与浏览器的一次会话过程,Session对象存储了特定用户会话所需的信息 例如:一定时间内记录账号密码 (自动登录) 可以加快 requests请求速度 需要客户端登录的

    2023年04月08日
    浏览(56)
  • 【网络安全带你练爬虫-100练】第11练:xpath快速定位提取数据

    目录 一、目标1:使用etree解析数据 二、目标2:使用xpath爬取指定数据 三、目标3:提取指定数据  四、网络安全小圈子 其余的不用过多介绍,前面的练习都给大家已经过了一遍 其中数据解析代码如下 对返回的内容进行UTF-8解码,不然会出现乱码 我们来爬一下这几个标题  

    2024年02月13日
    浏览(80)
  • Selenium使用xpath定位元素

    参考资料: 【web自动化测试】xpath元素定位 接下来是使用 xpath 必须掌握的核心知识点,只要掌握好这些知识点,基本上能定义到想要的元素。 // 开头表示相对路径, 也可以用 / 开头表示绝对路径,一般用相对路径。 [] 内表示属性条件 [@name=‘accout’] 表示获取name属性等于

    2023年04月08日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包