scrapy框架选择器
scrapy框架选择器
Scrapy有自己的数据提取机制。它们被称为选择器,因为它们“选择”HTML文档的某些部分 XPath 或 CSS 表达。
XPath是一种在XML文档中选择节点的语言,也可以与HTML一起使用。
CSS是用于将样式应用于HTML文档的语言。它定义选择器,将这些样式与特定的HTML元素相关联。
参考文献:scrapy官方文档-选择器https://docs.scrapy.org/en/latest/topics/selectors.html
一、使用选择器
1.构建选择器
response.selector.xpath('//span/text()').get() #提取span标签内的值
- 响应对象公开 Selector实例对
.selector
属性
selector是一个很薄的包装 parsel library;这个包装器的目的是提供更好的与slapy响应对象的集成。
parsel 是一个独立的网页爬取库,可以使用没有 Scrapy 。它使用 lxml库位于引擎盖下,并在LXML API之上实现一个简单的API。这意味着scrapy选择器在速度和解析精度方面与lxml非常相似。
使用xpath和css查询响应非常常见,因此响应中还包含两个快捷方式:
response.xpath()
response.css()
response.xpath('//span/text()').get() #xpath response.css('span::text').get() #css
如果需要,可以使用 Selector 直接。从文本构建:
from scrapy.selector import Selector body = '<html><body><span>good</span></body></html>' Selector(text=body).xpath('//span/text()').get()
2.使用选择器
以scrapy官方文档为例示例:https://docs.scrapy.org/en/latest/_static/selectors-sample1.html
第一步:获取页面节点元素
response.xpath('//title/text()') #结果:[<Selector xpath='//title/text()' data='Example website'>]
第二步:获取文本内容
response.xpath('//title/text()').getall() #['Example website']
response.xpath('//title/text()').get() #'Example website'
**.get()**总是返回一个结果;如果有多个匹配项,则返回第一个匹配项的内容;如果没有匹配项,则返回None。
**.getall()**返回包含所有结果的列表。
除了使用例如**@srcXPath之外,还可以使用.attrib**a的属性查询属性Selector
案例:
response.css('img').attrib['src'] #获取图片链接
3.将选择器与正则表达式一起使用
Selector还提供了**.re()一种使用正则表达式提取数据的方法。但是,与使用.xpath()**或 **.css()方法不同,它.re()返回字符串列表。因此,您无法构造嵌套.re()**调用。
案例:
response.xpath('//a[contains(@href, "image")]/text()').re(r'Name:\s*(.*)')
scrapy框架选择器相关推荐
- 爬虫学习笔记(七)——Scrapy框架(二):Scrapy shell、选择器
一.Scrapy shell scrapy shell的作用是用于调试,在项目目录下输入scrapy shell start_urls (start_urls:目标url)得到下列信息: scrapy ...
- python 爬虫 学习笔记(一)Scrapy框架入门
沉迷于通过高效算法及经典数据结构来优化程序的时候并不理解,为什么多线程可以优化爬虫运行速度?原来是程序特性所决定的:传统算法的程序复杂度主要来源于计算,但网络程序的计算时间可以忽略不计,网络程序所面临 ...
- python spider 安装_Python爬虫(11):Scrapy框架的安装和基本使用
大家好,本篇文章我们来看一下强大的Python爬虫框架Scrapy.Scrapy是一个使用简单,功能强大的异步爬虫框架,我们先来看看他的安装. Scrapy的安装 Scrapy的安装是很麻烦的,对于一 ...
- python pipeline框架_Python爬虫从入门到放弃(十六)之 Scrapy框架中Item Pipeline用法...
原博文 2017-07-17 16:39 − 当Item 在Spider中被收集之后,就会被传递到Item Pipeline中进行处理 每个item pipeline组件是实现了简单的方法的pytho ...
- 零基础学Python-爬虫-2、scrapy框架(测试案例篇·技术点在后面文章内讲解)【测试将一篇小说的所有访问路径与标题存储到一个文件下】
本套课程正式进入Python爬虫阶段,具体章节根据实际发布决定,可点击[python爬虫]分类专栏进行倒序观看: [重点提示:请勿爬取有害他人或国家利益的内容,此课程虽可爬取互联网任意内容,但无任何收 ...
- Scrapy 框架入门
一.介绍 Scrapy 是一个基于Twisted 的异步处理框架,是纯 Python 实现的爬虫框架,其架构清晰,模块之间耦合较低,扩展性和灵活强,是目前 Python 中使用最广泛的爬虫框架. ...
- 第42讲:scrapy框架的基本使用
接下来介绍一个简单的项目,完成一遍 Scrapy 抓取流程.通过这个过程,我们可以对 Scrapy 的基本用法和原理有大体了解. 本节目标 本节要完成的任务如下. 创建一个 Scrapy 项目. 创建 ...
- request body 里丢东西了_26. Scrapy 框架-模拟登录-Request、Response
1. Scrapy-Request和Response(请求和响应) Scrapy的Request和Response对象用于爬网网站. 通常,Request对象在爬虫程序中生成并传递到系统,直到它们到达 ...
- Python爬虫从入门到放弃(十一)之 Scrapy框架整体的一个了解
这里是通过爬取伯乐在线的全部文章为例子,让自己先对scrapy进行一个整理的理解 该例子中的详细代码会放到我的github地址:https://github.com/pythonsite/spider ...
最新文章
- 办公计算机培训方案,计算机办公软件应用培训教学计划规划方案.docx
- Attribute在.net编程中的应用
- 修改mysql的root密码
- Bzoj2440 完全平方数
- DCM、PLL、PMCD、MMCM的区别与联系?
- 2020年12月大学英语四六级英语作文预测(XDF王江涛)
- 2021-01-27 CentOS系统将UTC时间修改为CST时间方法
- 示例 Demo 工程和 API 参考链接
- websevice中runtime modeler error: Wrapper class com.ws.jaxws.Add is not found问题的解决办法
- 解决浏览器中点击input输入框时,placeholder的值不消失的方法
- native service
- oppoa5降级教程_OPPO A5官方出厂rom系统刷机包下载_卡刷升级包降级回退包
- 计算机NIC配置,在主计算机或 VM 上创建新的 NIC 团队
- 判断OS版本的几个方法
- imx6 通过移植XRM117x(SPI转串口)对Linux中的SPI驱动框架进行分析
- 深度学习系统框架的演进趋势
- 墨者学院-登录密码重置漏洞分析溯源
- 分享个人收集或整理的word中常用的vba代码
- 编码器verilog实现
- ICO文件缩略图显示错误
热门文章
- UI设计规范系统搭建的必要性
- 环境监测技术中关于网络时间校准问题
- 2020第一季度OKR
- 高斯杯全国大学生数学建模挑战赛
- python最短路径问题_Python调用gurobi来解决最短路径问题,python,求解
- 如果足球场没有边界,那将会怎样?(转)
- 男生都是如何折磨自己的女朋友的?
- 华为鸿蒙其他国产手机也可以用吗,鸿蒙系统8月正式开源: 不仅华为手机能用, 其它国产手机也能用...
- 计算机进化量子攻略,《超进化物语》量子巨龙怎么打 量子巨龙打发解析
- iOS11 持续定位