返回顶部
首页 > 资讯 > 后端开发 > Python >Scrapy元素选择器Xpath用法汇总
  • 455
分享到

Scrapy元素选择器Xpath用法汇总

2024-04-02 19:04:59 455人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

 众所周知,在设计爬虫时,最麻烦的一步就是对网页元素进行分析,目前流行的网页元素获取的工具有BeautifulSoup,lxml等,而据我使用的体验而言,scrapy的元素

 众所周知,在设计爬虫时,最麻烦的一步就是对网页元素进行分析,目前流行的网页元素获取的工具有BeautifulSoup,lxml等,而据我使用的体验而言,scrapy的元素选择器Xpath(结合正则表达式)是其中较为出色的一种(个人认为最好啦,当然只能在Scrapy中使用)功能相对较全、使用较为方便,正因为它的丰富性,有时很多功能会忘记,所以在这里整理好记录下来,方便今后查阅使用。

1. 元素的多级定位与跳级定位

多级定位:依靠html中的多级元素逐步缩小范围


response.xpath('//table/tbody/tr/td')

//如果知道元素所属的下标可以用下标选择
response.xpath('//table/tbody/tr[1]/td')

跳级定位:符号“//”表示跳级定位,即对当前元素的所有层数的子元素(不仅是第一层子元素)进行查找,一般xpath的开头都是跳级定位


response.xpath('//span//table')

2. 依靠元素的属性定位

每个html元素都有很多属性,如id、class、title、href、text(href和text往往可以配合正则表达式)等,这些属性往往具有很强的特殊性,结合元素多级定位或跳级定位会更准确高效,下面举几个典型的例子,其他的举一反三

利用class定位


response.xpath('//td[@class="mc_content"]')

利用href配合正则表达式定位


response.xpath('//a[re:test(@href,"^\/index\.PHP\?m=News&a=details&id=1&NewsId=\d{1,4}")]')

利用text结合正则表达式定位


a=response.xpath('//a[re:test(text(),"\w{4}")]')

此外,xpath还有对于html元素操作的两个实用的函数(可以用正则表达式代替)——starts-with和contains;


a=response.xpath('//a[starts-with(@title,"注册时间")]')

a=response.xpath('//a[contains(text(),"闻")]')

3. 提取元素或元素的属性值

首先是最基本的extract()函数,提取被定为的元素对象


a=response.xpath('//a[contains(text(),"闻")]').extract()

//如果被定为的元素对象有多个,可以有用下标指定
a=response.xpath('//a[contains(text(),"闻")]').extract()[1]

提取元素的属性


//提取text
a=response.xpath('//a[contains(text(),"闻")]/text()').extract()

//获取href
a=response.xpath('//a[contains(text(),"闻")]/@href').extract()

//获取name
a=response.xpath('//a[contains(text(),"闻")]/@name').extract()

此时我们的正则表达式又闲不住了(scrapy自带的函数),可以对提取的元素进行选择


//对href中的部分字符串进行选择
response.xpath('//a[@name="_l_p_n"]/@href').re('\/s.*?list\.htm')

在这里关于xpath的所有用法基本总结完毕,只是由于xpath是对静态元素进行匹配选择,对于javascript往往束手无策,这时不得不用一个自动化测试工具——selenium,可以实现各种动态事件和静态元素的选择,只是selenium往往比较吃内存,响应时间也比较慢,对于大型的爬虫任务尽量不要使用,毕竟有一些javascript元素是内嵌在网页代码中的,这时候结合万能的正则表达式,xpath往往能够实现。如下:


link = re.search("javascript:GoToPage\('(.*?)'", value) //value为包含该段的字符串

到此这篇关于Scrapy元素选择器Xpath用法汇总的文章就介绍到这了,更多相关Scrapy元素选择器Xpath 内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Scrapy元素选择器Xpath用法汇总

本文链接: https://lsjlt.com/news/122239.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Scrapy元素选择器Xpath用法汇总
     众所周知,在设计爬虫时,最麻烦的一步就是对网页元素进行分析,目前流行的网页元素获取的工具有BeautifulSoup,lxml等,而据我使用的体验而言,Scrapy的元素...
    99+
    2024-04-02
  • Xpath元素选择器怎么在Scrapy中使用
    这期内容当中小编将会给大家带来有关Xpath元素选择器怎么在Scrapy中使用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1. 元素的多级定位与跳级定位多级定位:依靠html中的多级元素逐步缩小范围re...
    99+
    2023-06-14
  • scrapy选择器xpath
    Scrapy提取数据有自己的一套机制,它们被称作选择器(seletors),通过特定的Xpath或者css表达式来"选择"html文件中的某个部分。Xpath是一门用来在XML文件中选择节点的语言,也可以用在HTML上,...
    99+
    2023-01-30
    选择器 scrapy xpath
  • CSS的子元素选择器用法介绍
    本篇内容介绍了“CSS的子元素选择器用法介绍”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!基础 子元素选择...
    99+
    2024-04-02
  • css元素选择器怎么用
    这期内容当中小编将会给大家带来有关css元素选择器怎么用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一个完整的HTML页面是有很多不同的标签组成,而标签选择器,则是决定...
    99+
    2024-04-02
  • jQuery元素选择器怎么用
    今天小编给大家分享一下jQuery元素选择器怎么用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一...
    99+
    2024-04-02
  • HTML元素选择的方法
    本篇内容主要讲解“HTML元素选择的方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“HTML元素选择的方法”吧! 元素也可以基于它们的类而被选择:td.fa...
    99+
    2024-04-02
  • 基于android背景选择器selector的用法汇总
    一.创建xml文件,位置:drawable/xxx.xml,同目录下记得要放相关图片 代码如下:<xml version="1.0" encoding="utf-8"&g...
    99+
    2022-06-06
    选择 Android
  • CSS元素选择器如何使用
    这篇文章主要介绍“CSS元素选择器如何使用”,在日常操作中,相信很多人在CSS元素选择器如何使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”CSS元素选择器如何使用”的疑惑...
    99+
    2024-04-02
  • HTML子元素选择器怎么用
    本文小编为大家详细介绍“HTML子元素选择器怎么用”,内容详细,步骤清晰,细节处理妥当,希望这篇“HTML子元素选择器怎么用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。 子...
    99+
    2024-04-02
  • css如何使用元素选择器
    这篇文章主要为大家展示了“css如何使用元素选择器”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“css如何使用元素选择器”这篇文章吧。元素选择器标记选择器是指用...
    99+
    2024-04-02
  • css元素选择器怎么使用
    css 元素选择器是一项用于匹配和选择元素的模式,基于元素的特定属性,如类型、类或 id。不同的选择器类型包括:类型选择器,类选择器,id 选择器,后代选择器和通用选择器。通过使用这些选...
    99+
    2024-05-21
    css
  • jquery中子元素选择器和后代元素选择器有哪些区别
    本文小编为大家详细介绍“jquery中子元素选择器和后代元素选择器有哪些区别”,内容详细,步骤清晰,细节处理妥当,希望这篇“jquery中子元素选择器和后代元素选择器有哪些区别”文章能帮助大家解决疑惑,下面...
    99+
    2024-04-02
  • Scrapy中怎么利用Xpath选择器从网页中采集目标数据
    Scrapy中怎么利用Xpath选择器从网页中采集目标数据,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。/具体实现/1、针对标题,在上篇文章中...
    99+
    2024-04-02
  • css选择第几个子元素用哪个选择器
    这篇文章给大家分享的是有关css选择第几个子元素用哪个选择器的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在css中,想要选择指定元素中第几个子元素,可以使用“:nth-child()”选择器。“:nth-chi...
    99+
    2023-06-15
  • CSS子元素选择器怎么使用
    本文小编为大家详细介绍“CSS子元素选择器怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“CSS子元素选择器怎么使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。 选择...
    99+
    2024-04-02
  • CSS结合元素选择器怎么用
    这篇“CSS结合元素选择器怎么用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“CSS结合元...
    99+
    2024-04-02
  • jquery有没有元素选择器
    这篇文章主要介绍了jquery有没有元素选择器的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇jquery有没有元素选择器文章都会有所收获,下面我们一起来看看吧。 ...
    99+
    2024-04-02
  • HTML元素选择器是什么
    本篇内容介绍了“HTML元素选择器是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! 在 W3C 标准...
    99+
    2024-04-02
  • 使用:only-child伪类选择器选择父元素只有一个子元素的样式
    使用:only-child伪类选择器选择父元素只有一个子元素的样式CSS是前端开发中必不可少的一部分,它为网页提供了丰富的样式,让我们的页面更加美观和易读。其中,伪类选择器是CSS中非常有用的一种技术,它可以选择不同的元素和状态进行样式设置...
    99+
    2023-11-20
    只子样式选择
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作