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计数排序和基数排序算法实例
Apr 25 Python
用Python实现通过哈希算法检测图片重复的教程
Apr 02 Python
python实现周期方波信号频谱图
Jul 21 Python
Python使用numpy产生正态分布随机数的向量或矩阵操作示例
Aug 22 Python
python实现两张图片的像素融合
Feb 23 Python
pycharm激活码有效到2020年11月底
Sep 18 Python
Python内置类型性能分析过程实例
Jan 29 Python
Python识别html主要文本框过程解析
Feb 18 Python
python + selenium 刷B站播放量的实例代码
Jun 12 Python
解决c++调用python中文乱码问题
Jul 29 Python
Python使用lambda抛出异常实现方法解析
Aug 20 Python
使用Pytorch实现two-head(多输出)模型的操作
May 28 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
色色整理的PHP面试题集锦
2012/03/08 PHP
PHP数据的提交与过滤基本操作实例详解
2016/11/11 PHP
JavaScript 封装Ajax传递的数据代码
2009/06/05 Javascript
jQuery TextBox自动完成条
2009/07/22 Javascript
利用onresize使得div可以随着屏幕大小而自适应的代码
2010/01/15 Javascript
使用js获取地址栏中传递的值
2013/07/02 Javascript
一个实用的图片切换支持点击切换和自动轮播
2014/09/09 Javascript
ECMAScript5中的对象存取器属性:getter和setter介绍
2014/12/08 Javascript
深入分析下javascript中的[]()+!
2015/07/07 Javascript
JS动态日期时间的获取方法
2015/09/28 Javascript
AngularJS表单和输入验证实例
2016/11/02 Javascript
jquery加载单文件vue组件的方法
2017/06/20 jQuery
vue 2.0 购物车小球抛物线的示例代码
2018/02/01 Javascript
Vue-cli项目获取本地json文件数据的实例
2018/03/07 Javascript
详解小程序原生使用ES7 async/await语法
2018/08/06 Javascript
关于JavaScript中高阶函数的魅力详解
2018/09/07 Javascript
了解JavaScript中let语句
2019/05/30 Javascript
js实现计时器秒表功能
2019/12/16 Javascript
node+multer实现图片上传的示例代码
2020/02/18 Javascript
[02:16]DOTA2超级联赛专访Burning 逆袭需要抓住机会
2013/06/24 DOTA
python正则分组的应用
2013/11/10 Python
python使用pil生成图片验证码的方法
2015/05/08 Python
分析运行中的 Python 进程详细解析
2019/06/22 Python
购买大码女装:Lane Bryant
2016/09/07 全球购物
土耳其家居建材网站:Koçtaş
2016/11/22 全球购物
美国专营婴幼儿用品的购物网站:buybuy BABY
2017/01/01 全球购物
马来西亚网上购物:Youbeli
2018/03/30 全球购物
皮肤科医师岗位职责
2013/12/04 职场文书
大学生演讲稿范文
2014/01/11 职场文书
学校安全工作制度
2014/01/19 职场文书
捐款倡议书范文
2014/02/02 职场文书
教师通用专业自荐书范文
2014/02/11 职场文书
幼儿园小班家长寄语
2014/04/02 职场文书
《穷人》教学反思
2014/04/08 职场文书
化学专业毕业生求职信
2014/07/28 职场文书
P站美图推荐——变身女主角特辑
2022/03/20 日漫