Python利用Xpath选择器爬取京东网商品信息


Posted in Python onJune 01, 2020

HTML文件其实就是由一组尖括号构成的标签组织起来的,每一对尖括号形式一个标签,标签之间存在上下关系,形成标签树;XPath 使用路径表达式在 XML 文档中选取节点。节点是通过沿着路径或者 step 来选取的。

Python利用Xpath选择器爬取京东网商品信息

首先进入京东网,输入自己想要查询的商品,向服务器发送网页请求。在这里小编仍以关键词“狗粮”作为搜索对象,之后得到后面这一串网址:

https://search.jd.com/Search?keyword=%E7%8B%97%E7%B2%AE&enc=utf-8,其中参数的意思就是我们输入的keyword,在本例中该参数代表“狗粮”,具体详情可以参考Python大神用正则表达式教你搞定京东商品信息。所以,只要输入keyword这个参数之后,将其进行编码,就可以获取到目标URL。之后请求网页,得到响应,尔后利用bs4选择器进行下一步的数据采集。

商品信息在京东官网上的部分网页源码如下图所示:

Python利用Xpath选择器爬取京东网商品信息

狗粮信息在京东官网上的网页源码

仔细观察源码,可以发现我们所需的目标信息是存在<li data-sku="*****" class="gl-item">标签下的,那么接下来我们就像剥洋葱一样,一层一层的去获取我们想要的信息。

通常URL编码的方式是把需要编码的字符转化为%xx的形式,一般来说URL的编码是基于UTF-8的,当然也有的于浏览器平台有关。在Python的urllib库中提供了quote方法,可以实现对URL的字符串进行编码,从而可以进入到对应的网页中去。

Python利用Xpath选择器爬取京东网商品信息

在线复制Xpath表达式

很多小伙伴都觉得Xpath表达式很难写,其实掌握了基本的用法也就不难了。在线复制Xpath表达式如上图所示,可以很方便的复制Xpath表达式。但是通过该方法得到的Xpath表达式放在程序中一般不能用,而且长的没法看。所以Xpath表达式一般还是要自己亲自上手。

直接上代码,利用Xpath去提取目标信息,如商品的名字、链接、图片和价格,具体的代码如下图所示:

Python利用Xpath选择器爬取京东网商品信息

爬虫代码

在这里,小编告诉大家一个Xpath表达式匹配技巧。之前看过好几篇文章,大佬们都推荐Xpath表达式使用嵌套匹配的方式。在本例中,首先定义items,如下所示:

items = selector.xpath('//li[@class="gl-item"]')

之后通过range函数,逐个从网页中进行匹配目标信息,而不是直接通过复制Xpath表达式的方式一步到位。希望小伙伴们以后都可以少入这个坑~~

最后得到的效果图如下所示:

Python利用Xpath选择器爬取京东网商品信息

最终效果图

新鲜的狗粮再一次出炉咯~~~

小伙伴们,有没有发现利用Xpath来获取目标信息比正则表达式要简单一些呢?

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python入门教程之运算符与控制流
Aug 17 Python
python中实现指定时间调用函数示例代码
Sep 08 Python
python绘制条形图方法代码详解
Dec 19 Python
Python 查看文件的编码格式方法
Dec 21 Python
python生成九宫格图片
Nov 19 Python
Python实现最常见加密方式详解
Jul 13 Python
谈谈Python:为什么类中的私有属性可以在外部赋值并访问
Mar 05 Python
python开发实例之python使用Websocket库开发简单聊天工具实例详解(python+Websocket+JS)
Mar 18 Python
win7上tensorflow2.2.0安装成功 引用DLL load failed时找不到指定模块 tensorflow has no attribute xxx 解决方法
May 20 Python
Python实现图片查找轮廓、多边形拟合、最小外接矩形代码
Jul 14 Python
史上最详细的Python打包成exe文件教程
Jan 17 Python
Python GUI编程之tkinter 关于 ttkbootstrap 的使用详解
Mar 03 Python
Python用类实现扑克牌发牌的示例代码
Jun 01 #Python
在pycharm中使用matplotlib.pyplot 绘图时报错的解决
Jun 01 #Python
Python基于BeautifulSoup爬取京东商品信息
Jun 01 #Python
k-means 聚类算法与Python实现代码
Jun 01 #Python
python 代码实现k-means聚类分析的思路(不使用现成聚类库)
Jun 01 #Python
python如何写出表白程序
Jun 01 #Python
python中os包的用法
Jun 01 #Python
You might like
星际中一些鲜为人知的详细资料
2020/03/04 星际争霸
php生成酷炫的四个字符验证码
2016/04/22 PHP
使用EXT实现无刷新动态调用股票信息
2008/11/01 Javascript
jQuery 计算iframe 窗口大小的方法
2014/05/13 Javascript
js打造数组转json函数
2015/01/14 Javascript
基于jQuery实现Div窗口震动特效代码-代码简单
2015/08/28 Javascript
javascript匀速动画和缓冲动画详解
2016/10/20 Javascript
详解jQuery事件
2017/01/13 Javascript
js图片延迟加载(Lazyload)三种实现方式
2017/03/01 Javascript
详解打造 Vue.js 可复用组件
2017/03/24 Javascript
layui-laydate时间日历控件使用方法详解
2018/11/15 Javascript
Jquery 获取相同NAME 或者id删除行操作
2020/08/24 jQuery
django+js+ajax实现刷新页面的方法
2017/05/22 Python
Python操作SQLite数据库的方法详解
2017/06/16 Python
python3.4用循环往mysql5.7中写数据并输出的实现方法
2017/06/20 Python
Python3简单实例计算同花的概率代码
2017/12/06 Python
python+mysql实现教务管理系统
2019/02/20 Python
Python脚本按照当前日期创建多级目录
2019/03/01 Python
Python脚本操作Excel实现批量替换功能
2019/11/20 Python
在win64上使用bypy进行百度网盘文件上传功能
2020/01/02 Python
Python转换itertools.chain对象为数组的方法
2020/02/07 Python
详细分析Python垃圾回收机制
2020/07/01 Python
python实现一个简单RPC框架的示例
2020/10/28 Python
Python绘制K线图之可视化神器pyecharts的使用
2021/03/02 Python
英国儿童鞋和靴子:Start-Rite
2019/05/06 全球购物
教师自我鉴定
2013/12/13 职场文书
实习评语
2013/12/16 职场文书
2014年应届大学生自我评价
2014/01/09 职场文书
劳动模范事迹材料
2014/01/19 职场文书
经理管理专业毕业自荐书范文
2014/02/12 职场文书
党员创先争优活动总结
2014/05/04 职场文书
基层党员对照检查材料
2014/08/25 职场文书
结婚保证书
2015/01/16 职场文书
十一月早安语录:把心放轻,人生就是一朵自在的云
2019/11/04 职场文书
PHP新手指南
2021/04/01 PHP
MySQL系列之四 SQL语法
2021/07/02 MySQL