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文件操作类操作实例详解
Jul 11 Python
Python使用lxml模块和Requests模块抓取HTML页面的教程
May 16 Python
用Python解决计数原理问题的方法
Aug 04 Python
PyCharm安装第三方库如Requests的图文教程
May 18 Python
PyGame贪吃蛇的实现代码示例
Nov 21 Python
Python txt文件加入字典并查询的方法
Jan 15 Python
解决PyCharm控制台输出乱码的问题
Jan 16 Python
python机器人运动范围问题的解答
Apr 29 Python
python实现机器人卡牌
Oct 06 Python
PyCharm GUI界面开发和exe文件生成的实现
Mar 04 Python
浅析pip安装第三方库及pycharm中导入第三方库的问题
Mar 10 Python
keras model.fit 解决validation_spilt=num 的问题
Jun 19 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
ThinkPHP3.0略缩图不能保存到子目录的解决方法
2012/09/30 PHP
如何使用PHP Embed SAPI实现Opcodes查看器
2015/11/10 PHP
PHP数组实例详解
2016/06/26 PHP
js或css实现滚动广告的几种方案
2010/01/28 Javascript
JQUERY简单按钮轮换选中效果实现方法
2015/05/07 Javascript
JS文字球状放大效果代码分享
2015/08/19 Javascript
jQuery实现的网页竖向菜单效果代码
2015/08/26 Javascript
Ionic2系列之使用DeepLinker实现指定页面URL
2016/11/21 Javascript
解析ajaxFileUpload 异步上传文件简单使用
2016/12/30 Javascript
微信小程序 POST请求的实例详解
2017/09/29 Javascript
微信小程序url传参写变量的方法
2018/08/09 Javascript
vue在自定义组件中使用v-model进行数据绑定的方法
2019/03/25 Javascript
vue中更改数组中属性,在页面中不生效的解决方法
2019/10/30 Javascript
Vue实现移动端拖拽交换位置
2020/07/29 Javascript
[04:21]狐狸妈带你到现场 DOTA2 TI中国区预选赛线下赛路线指引
2014/05/22 DOTA
Python中asyncore异步模块的用法及实现httpclient的实例
2016/06/28 Python
Python实现可获取网易页面所有文本信息的网易网络爬虫功能示例
2018/01/15 Python
Python cookbook(字符串与文本)针对任意多的分隔符拆分字符串操作示例
2018/04/19 Python
python调用tcpdump抓包过滤的方法
2018/07/18 Python
Python实现带下标索引的遍历操作示例
2019/05/30 Python
python爬虫 execjs安装配置及使用
2019/07/30 Python
通过实例了解python__slots__使用方法
2020/09/14 Python
python给list排序的简单方法
2020/12/10 Python
举例讲解Python装饰器
2020/12/24 Python
HTML5地理定位与第三方工具百度地图的应用
2016/11/17 HTML / CSS
程序设计HTML5 Canvas API
2013/04/08 HTML / CSS
Hotter Shoes英国官网:英伦风格,舒适的鞋子
2017/12/28 全球购物
英国DIY和家居装饰领域的主要品牌:Wickes
2019/11/26 全球购物
西班牙在线药店:DosFarma
2020/03/28 全球购物
临床医学专业毕业生的自我评价
2013/10/17 职场文书
2014年个人业务工作总结
2014/11/17 职场文书
三峡大坝导游词
2015/01/31 职场文书
肖申克救赎观后感
2015/06/02 职场文书
微信小程序用户授权最佳实践指南
2021/05/08 Javascript
Window server 2012 R2 AD域的组策略相关设置
2022/04/28 Servers
Windows Server 2008 修改远程登录端口以及配置防火墙
2022/04/28 Servers