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 代码优化详解
Oct 27 Python
用Python编写一个简单的Lisp解释器的教程
Apr 03 Python
Python随机生成信用卡卡号的实现方法
May 14 Python
使用Python写个小监控
Jan 27 Python
浅谈python和C语言混编的几种方式(推荐)
Sep 27 Python
浅谈Python中range和xrange的区别
Dec 20 Python
python 读取txt,json和hdf5文件的实例
Jun 05 Python
Python实现的txt文件去重功能示例
Jul 07 Python
python3.8下载及安装步骤详解
Jan 15 Python
python GUI模拟实现计算器
Jun 22 Python
用python写PDF转换器的实现
Oct 29 Python
python_tkinter弹出对话框创建
Mar 20 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
php4的session功能评述(三)
2006/10/09 PHP
PHP中ADODB类详解
2008/03/25 PHP
PHP MVC框架路由学习笔记
2016/03/02 PHP
PHP验证码无法显示的原因及解决办法
2017/08/11 PHP
phpStudy2016 配置多个域名期间遇到的问题小结
2017/10/19 PHP
jQuery 常见学习网站与参考书
2009/11/09 Javascript
Extjs Gird 支持中文拼音排序实现代码
2013/04/15 Javascript
简介JavaScript中substring()方法的使用
2015/06/06 Javascript
JavaScript保存并运算页面中数字类型变量的写法
2015/07/06 Javascript
第一次接触JS require.js模块化工具
2016/04/17 Javascript
浅析Bootstrip的select控件绑定数据的问题
2016/05/10 Javascript
layer弹出的iframe层在执行完毕后关闭当前弹出层的方法
2018/08/17 Javascript
解决vue axios的封装 请求状态的错误提示问题
2018/09/25 Javascript
30分钟用Node.js构建一个API服务器的步骤详解
2019/05/24 Javascript
Angular8基础应用之表单及其验证
2019/08/11 Javascript
nodejs的安装使用与npm的介绍
2019/09/11 NodeJs
vue实现购物车功能(商品分类)
2020/04/20 Javascript
PHP 502bad gateway原因及解决方案
2020/11/13 Javascript
[01:06]DOTA2亚洲邀请赛专属珍藏-荧煌之礼
2017/03/24 DOTA
Python中用format函数格式化字符串的用法
2015/04/08 Python
Python中__init__.py文件的作用详解
2016/09/18 Python
python构建指数平滑预测模型示例
2019/11/21 Python
python实现的Iou与Giou代码
2020/01/18 Python
Python基于进程池实现多进程过程解析
2020/04/30 Python
CSS3中的transform属性进行2D和3D变换的基本用法
2016/05/12 HTML / CSS
HTML5 form标签之解放表单验证、增加文件上传、集成拖放的使用方法
2013/04/24 HTML / CSS
新西兰廉价汽车租赁:Snap Rentals
2018/09/14 全球购物
澳大利亚先进的皮肤和激光诊所购物网站:Soho Skincare
2018/10/15 全球购物
日本著名化妆品零售网站:Cosme Land
2019/03/01 全球购物
英国顶尖手表珠宝品牌独家授权经销商:HS Johnson
2020/10/28 全球购物
大学生村官座谈会发言材料
2014/05/25 职场文书
毕业设计答辩开场白
2015/05/29 职场文书
爱国主义影片观后感
2015/06/18 职场文书
2015年学校医务室工作总结
2015/07/20 职场文书
2019销售早会主持词
2019/06/27 职场文书
OpenCV-Python使用cv2实现傅里叶变换
2021/06/09 Python