学习XPath助力爬取中秋各大电商平台数据

简介: 学习XPath助力爬取中秋各大电商平台数据

目录


  1. XPath是什么?
  2. 浏览器插件: XPath Helper
  3. XPath节点
  4. XPath语法
  5. XPath运算符
  6. 实战案例


XPath是什么?


  1. XPath是一门在XML文档中查找信息的语言。
  2. XPath提供的路径表达式方便我们在XML文档中选取节点或节点集合。
  3. XPath提供了大量的标准函数,如:处理字符串,数值,日期,时间,节点,逻辑关系等。
  4. XPath符合W3C标准。


浏览器插件: XPath Helper


我们通过浏览器插件来验证我们的写XPath语句是否成功更为方便。

  1. 在Chrome浏览器的商店搜索XPath Helper并添加。

1.png

  1. 打开目标网站后点击我们的插件图标呼出操作栏
  1. 操作栏左侧为XPath语句
  2. 操作栏右侧为匹配结果

2.png


XPath节点


对于XPath来说也是包含了节点,值,节点间的关系三部分。节点有元素,属性,文本,命名空间,指令,注释和根节点7类,节点间的关系有父子关系,兄弟关系,先辈关系,后代关系。


XPath语法


// 案例演示使用
<!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>
        <h3 style="font-weight: 500;">Hello XPath 1</h3>
        <h3 style="font-weight: 600;">Hello XPath 2</h3>
        <h3 style="font-weight: 600;">Hello XPath 3</h3>
    </div>
</body>
</html>

选取节点:
  1. 选取文档所有节点:Root node name
  2. 从根节点选取:/
  3. 从任意位置选择://
  4. 选取当前节点:.
  5. 选取当前节点的父节点:..
  6. 选取属性: @
  7. 案例:
  1. 选取根元素:/html
  2. 从根元素开始选取div下的所有子元素:/html/body/div
  3. 从根元素开始选取div下的所有h3元素:/html/body/div//h3
  4. 从任意位置选取h3元素://h3
  5. 从任意位置选取style属性://@style

谓语:

缩小节点的选取到指定位置

  1. 选取div下第一个h3:/html/body/div/h3[1]
  2. 选取div下最后一个h3:/html/body/div/h3[last()]
  3. 选取div下倒数第二个h3:/html/body/div/h3[last()-1]
  4. 选取div下前两个h3:/html/body/div/h3[position()<3]
  5. 选取所有带style属性的h3:/html/body/div/h3[@style]
  6. 选取所有带style属性且值为600磅的h3:/html/body/div/h3[@style="font-weight: 600;"]
  7. 选取title元素和div下的所有子元素:/html/head/title | /html/body/div

选取未知节点:
  1. 匹配未知元素:*
  2. 匹配未知属性:@*
  3. 匹配任何类型的节点:node()


XPath运算符


图表来源:www.runoob.com/xpath/xpath…

运算符 描述
+ 加法
- 减法
* 乘法
div 除法
= 等于
!= 不等于
< 小于
<= 小于或等于
> 大于
>= 大于或等于
or
and
mod 计算除法的余数


利用中秋各大电商平台页面实战


目标:
  1. 获取搜索到的第一件商品的信息。
  2. 获取搜索到的前三件商品的信息。
  3. 获取搜索到的最后一件商品的信息。
  4. 获取搜索到的价格大于200元的商品信息。


淘宝平台实战:


s.taobao.com/search?q=中秋月饼


商品各字段匹配:
  1. 匹配商品名称:

//div[@data-category="auctions"]/div[2]/div[2]/a 2. 匹配价格://div[@data-category="auctions"]/div[2]//div[@class="price g_price g_price-highlight"]/strong 3. 付款人数://div[@data-category="auctions"]/div[2]/div[1]/div[2] 4. 匹配封面://div[@data-category="auctions"]/div[1]//img/@src

匹配搜索到的第一个商品:
//div[@data-category="auctions"][1]

3.png

匹配搜索到的前三个商品:
//div[@data-category="auctions"][position()<=3]

4.png

匹配搜索到的最后一个商品:
//div[@data-category="auctions"][last()]

5.png

//div[@class="price g_price g_price-highlight"][strong>200]/../../..

6.png


备注:我们也可以通过浏览器的开发者工具来直接获得XPath后再手工调整来节省时间,如下图所示。

  1. Copy XPath://*[@id="bd672fe6-3dd0-475e-96db-4b0fe71f72eb"]/div[2]/div/div[1]/div/div/div/div[1]/a
  2. Copy full XPath:/html/body/div/div/section/section/main/div[2]/div/div/div[2]/div/div[1]/div/div/div/div[1]/a

7.png


结语


通过浏览器的开发者工具我们可以看到选取节点的方式有selector,JSPath等,选择自己习惯用的就可以了,熟练的选取元素节点为你的爬虫添砖加瓦吧~~~



相关文章
|
3月前
|
数据采集 数据可视化 搜索推荐
Python爬虫技术从去哪儿网获取旅游数据,对攻略进行可视化分析,提供全面的旅游攻略和个性化的出行建议
本文利用Python爬虫技术从去哪儿网获取旅游数据,通过数据处理和可视化分析,提供了全面的旅游攻略和个性化出行建议,同时探讨了热门目的地、出游方式、时间段以及玩法的偏好,为旅游行业和游客提供了有价值的参考信息。
161 8
|
6月前
|
运维 API 数据安全/隐私保护
京东JDAPI:电商行业的得力助手
在当今电商行业中,数据的获取与利用显得尤为重要。作为中国领先的电商平台,京东提供了丰富的API接口,其中JD商品详情API是关键之一,它允许第三方开发者获取京东平台上的商品详情信息。本文将深入探讨京东JD商品详情API在电商行业中的重要性,以及如何通过该API实现实时数据获取。
|
双11 UED
《双十一电商行业 网站用户体验报告》电子版地址
电商行业的关注点逐渐从追求增长速度转向关注更加顺畅的用户体验与更加优质的服务质量。面对全球化营销以及大促带来的流量浪涌,如何应对散布在全球不同地区与国家的海量用户,及时发现流量激增带来的用户体验与性能问题,成为每个电商乃至众多互联网企业需要关心的重点。
102 0
《双十一电商行业 网站用户体验报告》电子版地址
|
人工智能 安全 搜索推荐
百度直达号推房产行业解决方案 O2O进入“重型”时代
当前,一个个的产业正在借着“互联网+”的春风被O2O所洗礼。接受了O2O理念的各行业,借助移动互联网以及平台、生态、共享经济等更先进的商业模式实现连接人与服务。虽然O2O不是“互联网+”落地的唯一解决方案,却是传统行业连接互联网最直接的体现。
152 0
百度直达号推房产行业解决方案 O2O进入“重型”时代
解析家教O2O电商平台火爆的五大原因
家教O2O的爆发,证明了O2O电商系统的适用范围正在不断扩大,传统的产业与新型产业之间的融合更加快速地发展。教育产业的O2O电商化,在于如何利用教育资源比如教育机构和教师等,加入到家教O2O电商平台,形成一个O2O家教生态系统。
986 0
|
Web App开发 前端开发
淘宝、拼多多、小红书,很多知名的企业都是从一个网站开始的
网站是企业了解线上用户数据的一个方向,可以通过分析网站数据了解其潜在客户在哪里?然后再定向的投放市场广告,这样可以达到事半功倍的效果。
一张图看懂什么样的微博营销最能击中95后
1 95后微博用户 是一个具有巨大消费潜力的独特市场, 尤其在电子产品与学习培训方面 消费的意愿和金额都比非95后用户更高。 超过70%的95后微博用户 对社交媒体广告持正面态度, 相较于传统的媒介传播方式, 他们更喜欢用音乐、视频、图片等具象化媒介, 因此以这几种形式进行传播的广告 更容易达到宣传效果。
1925 0