当前位置: 首页 > 后端技术 > Python

如何使用Xpath抓取京东商品信息

时间:2023-03-25 20:57:40 Python

前几期小编使用Python正则表达式和BeautifulSoup抓取京东商品信息。今天用Xpath来演示如何实现京东商品信息的精准匹配~~HTML文件实际上是由一组尖括号组成的标签组织的,每对尖括号组成一个标签,并且有一个上并降低标签之间的关系,形成标签树;XPath使用路径表达式来选择XML文档中的节点。通过以下路径或步骤选择节点。京东狗粮产品首先进入京东,输入要查询的产品,向服务器发送网页请求。在这里,小编依旧以关键词“狗粮”作为搜索对象,然后得到如下网址:https://search.jd.com/Search?keyword=%E7%8B%97%E7%B2%AE&enc=utf-8,这里的参数就是我们输入的关键字。在这个例子中,参数代表“狗粮”。具体可以参考python高手用正则表达式教大家如何获取京东商品信息。因此,只要输入关键字参数并进行编码,就可以得到目标URL。然后请求网页,得到响应,然后使用bs4选择器进行下一步的数据采集。京东官网商品信息部分源码如下图所示:狗粮信息源码在京东官网。仔细观察源码,可以发现我们需要的目标信息存在标签,那我们就像剥皮一样一个洋葱,一层一层得到我们想要的信息。通常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网络爬虫和数据挖掘,可以去专业网站:http://pdcfighting.com/