免费网页采集器( Python大神用正则表达式教你搞定京东商品信息的精准匹配~)
优采云 发布时间: 2022-02-04 02:22免费网页采集器(
Python大神用正则表达式教你搞定京东商品信息的精准匹配~)
之前的小编使用Python正则表达式和BeautifulSoup来爬取京东商品信息。今天小编就用Xpath来演示如何实现京东商品信息的精准匹配~~
HTML文件实际上是由一组由尖括号组成的标签组织起来的,每一对尖括号组成一个标签,标签之间存在自上而下的关系,形成标签树;XPath 使用路径表达式来选择 XML 文档中的节点。通过遵循路径或步骤来选择节点。
京东狗粮产品
首先进入京东,输入你要查询的产品,向服务器发送网页请求。在这里,小编还是用关键词“dog food”作为搜索对象,然后得到如下URL:%E7%8B%97%E7%B2%AE&enc=utf-8,其中参数表示我们的输入关键字,本例中该参数代表“狗粮”。详情请参考Python大神使用正则表达式教你获取京东产品信息。因此,只要输入关键字参数并对其进行编码,就可以得到目标网址。然后请求网页,得到响应,然后使用bs4选择器进行下一条数据采集。
京东官网部分产品信息源代码如下图所示:
京东官网狗粮信息源代码
仔细看源码可以发现,我们需要的目标信息就在标签下,那么我们就像剥洋葱一样,一层一层的得到我们想要的信息。
通常URL编码的方式是将需要编码的字符转换成%xx的形式。一般来说,URL的编码都是基于UTF-8的,当然也有一些和浏览器平台有关。Python的urllib库中提供了quote方法,可以对URL的字符串进行编码,从而可以进入对应的网页。
在线复制 Xpath 表达式
很多朋友觉得Xpath表达式很难写,但是掌握基本用法并不难。在线复制Xpath表达式如上图所示,可以很方便的复制Xpath表达式。但是这种方法得到的Xpath表达式一般不能在程序中使用,长的也看不出来。因此,Xpath 表达式一般要自己使用。
直接进入代码,使用Xpath提取目标信息,如商品名称、链接、图片、价格等。具体代码如下图所示:
爬虫代码
在这里,编辑器告诉您一种 Xpath 表达式匹配技术。之前看过几篇文章的文章,大佬们都推荐对Xpath表达式使用嵌套匹配。在此示例中,项目首先定义如下:
items = selector.xpath('//li[@class="gl-item"]')
然后使用range函数从网页中一一匹配目标信息,而不是直接一步复制Xpath表达式。希望以后朋友们能少进这个坑~~
最终效果图如下:
最终效果图
新鲜的狗粮又出来了~~~
朋友们,有没有发现使用Xpath获取目标信息比使用正则表达式更容易?