去除div最后一个逗号_第3课:一个周末学会R语言数据采集:XPath基础

b15cf3b5e224b3a0c5ff26852610b725.png

本章目标:了解Xpath的书写方法,并可以运用Xpath定位数据。

一、什么是XPath

XPath 是一门在 XML 文档中查找信息的语言。

二、Xpath在爬虫中的作用

  • 定位数据位置;定位数据位置;定位数据位置,重要的事情说三遍
  • 我们在定位到数据位置后,才能进行比如点击、输入文本、抓取数据等操作

三、XPath如何定位数据

利用html代码中的 标签 + 属性 进行数据定位

1.什么是标签?

  • 标签是HTML中的树状结构中的一个个节点,不同的标签起到不同的作用。
  • 标签类似家庭族谱中的一个个人,比如老王的大儿子的三儿子
  • HTML中一些常见的标签。

6368bd02d23978e491c08fae5ff53661.png

2.什么是属性?

  • 属性是用来修饰节点的,比如在a标签,属性可以定义跳转的超链接,或者类名称。
  • 属性类似于描述人形容词,比如,戴眼镜,帅气,体重200斤等。
  • HTML中的一些常见的属性

907417cca13e35c323e5505d6d3fe99b.png

四、在HTML中快速找到XPath路径方法

我们尝试在链家上找到元素对应的XPath

  1. chrome浏览器打开网页:链家上海小区
  2. 右键点击检查,或者ctrl+shift+i

e296abd31f401ca6de23b16438700435.png

3. Element标签里即显示HTML代码的内容,红框内的小箭头点击网页元素可以显示元素在html中的位置,找到html中的元素位置,右键 -> copy -> copy XPath,获取XPath

c5d4c348f971e4166196c25931e55fc5.png

4. 获取到的值为:/html/body/div[4]/div[1]/ul/li[1]/div[1]/div[1]/a

四、解析链家XPath的树状图

435eb7e205202bb368706ff30c4cfb95.png

比较一下chrome下载获取的XPath:/html/body/div[4]/div[1]/ul/li[1]/div[1]/div[1]/a

ba5e237cb5814b31eeb60ea44bc8c331.png
八爪鱼Xpath工具返回的结果

可以发现,XPath就是html代码中树状图的一个个节点,其中数字是节点名称出现的序号。(是不是很像家庭族谱中的关系)。

五、通过属性和标签结合获取XPath

1. 如果不填写序号,则可以获取符合网页中符合要求的所有节点。如:/html/body/div[4]/div[1]/ul/li/div[1]/div[1]/a可以定位到所有小区的位置。

653128d1f95fccc99bbf94d8ef3c7f5a.png
li后的序号去除后,所有小区名被提取出来

2. 用标签结合属性可以达到同样的效果,如div[@class ="title"]可以获取网页中属性class为title的所有节点(但有些非小区名称的数据也会被提取出来)

decc8d866c661c7b690e79502a2f36dd.png
所有class属性值为title的内容被提取出来,包括“筛选”等非小区名称
  1. 通常,结合标签和属性,可以更简单的获取数据的位置:如://ul/li/div[1]/div[@class="title"]/a 等价于/html/body/div[4]/div[1]/ul/li/div[1]/div[1]/a(注://代表可以不从最根部节点html节点开始)

0525fb661d66856797cec92a73d8f9a8.png
有马骏:一个周末学会R语言数据采集:1. 爬虫介绍​zhuanlan.zhihu.com
34f8483474e77a8394ab5f611408313b.png
有马骏:一个周末学会R语言数据采集:2. R爬虫环境安装​zhuanlan.zhihu.com
34f8483474e77a8394ab5f611408313b.png
有马骏:一个周末学会R语言数据采集:4. RSelenium常用操作​zhuanlan.zhihu.com
34f8483474e77a8394ab5f611408313b.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值