文本数据采集与处理之一 下|学习笔记

简介: 快速学习文本数据采集与处理之一 下

开发者学堂课程【高校精品课-华东师范大学 - Python 数据科学基础与实践文本数据采集与处理之一 下】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/1067/detail/15511


文本数据采集与处理之一 下

 

内容介绍

一、 标签定位

二、序列定位

三、轴定位

四、常见运算符与函数

 

再详细介绍一下Xpath,真正在爬虫在工作过程当中,工作量最大的是要做网页解析,从文档对象上面去找东西,这是工作量最大的。课里面讲的方法主要是Xpath。Xpath有很多功能。主要介绍如何来定位的三种定位方法

 

一、 标签定位

image.png

第一种就是标签定位。标签定位,都知道标签就是tag,网页里面那个构成的这些元素的名字也叫节点名称。所以有这样几个标签定位方式。

1,直接用名词nodename节点的名字。找网页里面的对应的元素。那么就选取此节点的所有子节点,只要找到到一个节点下面所有就找到了,举个例子,比如说’//div’ div就是一个nodename,要找到网页里面的div里面的所有的标签。因为//表示所有的

2,单斜杠,单斜杠是从根结点出发,如果单斜杠前面已经有东西,那就从当前节点接着下面,当成根节点,然后下面找东西,比如说这个第一个斜杠head,那就是整个文档树的树根找head,然后head下面就直接连着title没有隔开的节点叫紧接着。这个解释就是从根结点找到head下面的title

3,双斜杠,是选取任意位置的某个节点 ‘//p’表示在html中找到所有的p标签。如果前面没有跟其他东西,其他这限制,那就表示,在整个文档里面找所有直批。

4,@ @是选取属性的指令,属性是从属于一个标签的,一个nodename的一个节点,例如前面的节点的div然后中括号,放在中括号里面@,@后面第一个属性,属性是名字叫class的值等于one。那就找所有div的,然后属性的类别是等于one的,这样的所有的这样的一些元素

5,再来一个标签定位时,是星号。是一个通配符。通配任意内容,例如双斜杠表示找所有的,然后div,然后这个单斜杠下面的星号,那么就是返回所有满足条件的div的这个界定这里用的最重要,最多的一个是双斜杠,有的时候可能怕麻烦就不用单斜杠 还要提一个具体位置,双斜杠反正找下面所有的,但是工作量稍微大一点。然后再一个就是指定属性。是经常用的要到网页上去找某一块内容,找邮箱地址,找某一个品牌的名字,就专门指定属性的。所以是Xpath第一种叫标签定位

 

二、序列定位

image.png1,指定具体的一个位置中,[1]表示第一个元素,例’//div[1]’里div返回第一个div对象。在这个找到的div可能很多,几十个但只找第一个div所以有的时候看网页的时候要计算一下,到底要的在第几个里面可以指定。

2,[last()]找最后一个元素。通过网页观察发现要找的内容就在网页的最后一个位置

3[last()-1]就是找倒数第二个元素

4,[position]。指明位置,一个position函数是指定范围的元素,例如双斜杠里面找所有的ul,ul是排列的列表li是里面一个向 比如说有三个圆点,四个圆点,整个叫做UL,然后里面的某一个叫做li,这个li的看position位置大于二,同时还小于五,先找是大于二的。找li标签先大于二也就从第三个开始,然后找小于五,小于五就找四个标签。

 

三、轴定位

image.png那就是上下位关系的轴定位。

1,有child定位。表示当前节点的所有子元素,孩子元素,子元素,比如说div[1],[1]表示一个序列定位,div表示前面的标签定位,child注意两个冒号型号表示下面所有的孩子节点

2,parent表示父节点

3,ancestor是祖先节点所有的祖先

4,descendant子孙节点,把所有的后代节点。

5,self表示自己本身。

 

四、常见运算符与函数

以上是轴定位。除了这几个定位之外呢,还有几个重要的内容, Xpath里面常用的运算符和函数。

image.png

函数用的最多就是返回指定元素的文本内容。抓网页,抓网页内容,主要是文本内容,例如

1,text()找book标签下text()标签下的文本。要那个显示在网页上的图

2,string()也是返回文本内容。啊string()和text()是有什么区别呢?string()是返回所有的,比text()要拿的内容更多

3,contains含有,也就是一个字符串啊是不是含有另外字符串里(str1,石头人)然后呢,我们这个例子里面看到没有,找一个div ,div里面然后contains然后点表示当前。然后双斜杠就刚刚前面所有的文本函数,然后函数里面去找到文本内容,里面还有价格,把这个都找到还有价格,要选择text中包含价格所有的div节点。

4,not()是不包含。但是他要跟condtains组合的

5,Xpath还可以支持各种运算符。家庭之后的可以支持,可以计算,可以比较大小。

比如说,如果说一个标签名字叫price,可以找price大于九的那些商品,如果一个商品列表里面各种价格,不要都抓,我要抓取这个价格大于九点九九点九元的。

如果掌握了request加Xpath,基本上就可以解决大多数的网络爬虫问题。

相关文章
|
5月前
|
数据采集 XML 自然语言处理
R语言汽车口碑数据采集抓取、文本数据分词和词云可视化实现
R语言汽车口碑数据采集抓取、文本数据分词和词云可视化实现
|
11月前
|
数据采集 分布式计算 数据挖掘
80 网站点击流数据分析案例(数据采集功能)
80 网站点击流数据分析案例(数据采集功能)
59 0
|
11月前
|
数据采集 SQL 分布式计算
81 网站点击流数据分析案例(数据预处理功能)
81 网站点击流数据分析案例(数据预处理功能)
72 0
|
数据可视化
视觉可视化分析与设计
Visualization Analysis & Design
112 0
|
机器学习/深度学习 人工智能 自然语言处理
只能用于文本与图像数据?No!看TabTransformer对结构化业务数据精准建模
亚马逊提出的TabTransformer网络结构,颠覆了NLP/CV,为各种非结构化数据业务带来了巨大突破。当然,TabTransformer也擅于捕捉传统结构化表格数据中不同类型的数据信息,并将其结合以完成预估任务。本文就讲解如何构建TabTransformer并将其应用于结构化数据。
2210 1
只能用于文本与图像数据?No!看TabTransformer对结构化业务数据精准建模
|
数据可视化 数据挖掘 Python
数据分析案例-文本挖掘与中文文本的统计分析
数据分析案例-文本挖掘与中文文本的统计分析
220 0
数据分析案例-文本挖掘与中文文本的统计分析
|
机器学习/深度学习 算法 数据挖掘
数据分析中常见的10种数据编码方式
数据分析中常见的10种数据编码方式
844 0
数据分析中常见的10种数据编码方式
|
数据采集 JSON JavaScript
文本数据采集与处理之一上|学习笔记
快速学习文本数据采集与处理之一上
文本数据采集与处理之一上|学习笔记
|
数据采集 XML JavaScript
文本采集与数据处理之一中|学习笔记
快速学习文本采集与数据处理之一中
文本采集与数据处理之一中|学习笔记
|
数据采集 SQL 数据挖掘
数据预处理-数据解析-总结及预定数据分析|学习笔记
快速学习数据预处理-数据解析-总结及预定数据分析
151 0
数据预处理-数据解析-总结及预定数据分析|学习笔记
下一篇
无影云桌面