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

 更新时间:2020年06月01日 14:59:53   作者:Python进阶学习交流  
这篇文章主要介绍了Python利用Xpath选择器爬取京东网商品信息,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

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

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

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

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

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

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

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

在线复制Xpath表达式

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

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

爬虫代码

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

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

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

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

最终效果图

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

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

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

相关文章

  • 利用python中的matplotlib打印混淆矩阵实例

    利用python中的matplotlib打印混淆矩阵实例

    这篇文章主要介绍了利用python中的matplotlib打印混淆矩阵实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-06-06
  • 利用Python将图片中扭曲矩形的复原

    利用Python将图片中扭曲矩形的复原

    这篇文章主要给大家介绍了关于如何利用Python将图片中扭曲矩形复原的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • 浅谈Python的自省Introspection和反射机制Reflection

    浅谈Python的自省Introspection和反射机制Reflection

    这篇文章主要介绍了浅谈Python的自省Introspection和反射机制Reflection,反射就是通过字符串的形式去对象(模块)中操作(查找/获取/删除/添加)成员,一种基于字符串的事件驱动,需要的朋友可以参考下
    2023-08-08
  • 基于python+pandoc实现html批量转word

    基于python+pandoc实现html批量转word

    pandoc是一个强大的文档格式转换工具,支持丰富的格式转换,并尽可能的保留原来的排版,号称文档格式转换的瑞士军刀,本文将给大家介绍一下使用python搭配pandoc实现html批量转word,感兴趣的朋友可以参考阅读下
    2023-09-09
  • Python利用wxPython制作一个有趣的验证码生成器

    Python利用wxPython制作一个有趣的验证码生成器

    这篇文章主要为大家详细介绍了Python如何利用wxPython制作一个简单有趣的验证码生成器,文中的示例代码讲解详细,需要的小伙伴可以了解一下
    2023-04-04
  • Python for循环搭配else常见问题解决

    Python for循环搭配else常见问题解决

    这篇文章主要介绍了Python for循环搭配else常见问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • python如何实现图片重命名并保存

    python如何实现图片重命名并保存

    这篇文章主要介绍了python如何实现图片重命名并保存问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • Python同步遍历多个列表的示例

    Python同步遍历多个列表的示例

    今天小编就为大家分享一篇Python同步遍历多个列表的示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-02-02
  • Python入门教程之Python的安装下载配置

    Python入门教程之Python的安装下载配置

    这篇文章主要介绍了Python入门教程之Python的安装下载配置,Python是一门非常强大好用的语言,也有着易上手的特性,本文为入门教程,需要的朋友可以参考下
    2023-04-04
  • django应用JWT(JSON Web Token)实战教程

    django应用JWT(JSON Web Token)实战教程

    在前后端分离的项目中,JWT(JSON Web Token)作为一种广泛使用的身份验证和授权机制,提供了一种安全、高效的方式来保护RESTful API,本文详细介绍了JWT的概念、优势、在Django中的应用步骤和使用方法,是构建安全、高效Web应用的有效指南
    2024-10-10

最新评论