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 21 Python
python中urllib.unquote乱码的原因与解决方法
Apr 24 Python
python中nan与inf转为特定数字方法示例
May 11 Python
浅谈python jieba分词模块的基本用法
Nov 09 Python
详解Python with/as使用说明
Dec 13 Python
python 使用pandas计算累积求和的方法
Feb 08 Python
python实现诗歌游戏(类继承)
Feb 26 Python
Python常用特殊方法实例总结
Mar 22 Python
python暴力解压rar加密文件过程详解
Jul 05 Python
上帝为你开了一扇窗之Tkinter常用函数详解
Jun 02 Python
python常见的占位符总结及用法
Jul 02 Python
5道关于python基础 while循环练习题
Nov 27 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
《猛禽小队》:DC宇宙的又一超级大烂片
2020/04/09 欧美动漫
php学习之简单计算器实现代码
2011/06/09 PHP
PHP中绘制图像的一些函数总结
2014/11/19 PHP
php写入数据到CSV文件的方法
2015/03/14 PHP
再推荐十款免费的php开发工具
2015/11/09 PHP
php getcwd与dirname(__FILE__)区别详解
2016/09/24 PHP
PHP中OpenSSL加密问题整理
2017/12/14 PHP
JS如何判断移动端访问设备并解析对应CSS
2013/11/27 Javascript
JS中window.open全屏命令解析及使用示例
2013/12/11 Javascript
webpack+vue.js快速入门教程
2016/10/12 Javascript
jQuery实现简单的手风琴效果
2020/04/17 jQuery
详解node单线程实现高并发原理与node异步I/O
2017/09/21 Javascript
python实现马耳可夫链算法实例分析
2015/05/20 Python
Python安装Numpy和matplotlib的方法(推荐)
2017/11/02 Python
Python random模块用法解析及简单示例
2017/12/18 Python
可能是最全面的 Python 字符串拼接总结【收藏】
2018/07/09 Python
python实现随机漫步算法
2018/08/27 Python
Python 批量刷博客园访问量脚本过程解析
2019/08/30 Python
Python 模拟动态产生字母验证码图片功能
2019/12/24 Python
Pytest mark使用实例及原理解析
2020/02/22 Python
Python解释器以及PyCharm的安装教程图文详解
2020/02/26 Python
Python字符串格式化f-string多种功能实现
2020/05/07 Python
Python做图像处理及视频音频文件分离和合成功能
2020/11/24 Python
意大利男装网店:Vrients
2019/05/02 全球购物
SQL Server数据库笔试题和答案
2016/02/04 面试题
在c#中using和new这两个关键字有什么意义
2013/05/19 面试题
应届生法律求职信
2013/10/22 职场文书
电子商务专业个人的自我评价分享
2013/10/29 职场文书
五十岁生日宴会答谢词
2014/01/15 职场文书
化学教学随笔感言
2014/02/19 职场文书
新员工试用期自我评价
2015/03/10 职场文书
谁动了我的奶酪读书笔记
2015/06/30 职场文书
小学数学教师研修感悟
2015/11/18 职场文书
React forwardRef的使用方法及注意点
2021/06/13 Javascript
JavaScript中的LHS和RHS分析详情
2022/04/06 Javascript
Java 多线程并发FutureTask
2022/06/28 Java/Android