买一把能拍大蒜的菜刀要多少钱? 通过爬虫爬取菜刀价格

需求分析

这两天,有关于菜刀能否用来拍蒜的问题,非常的火爆。有人说,他家里的菜刀就是在市场买的,总共也没花几十块,用了几十年还能照常拍蒜。也有人说,他买了外国进口的菜刀,花了小几千,但是一拍蒜就坏了,不能用了。那么这个菜刀到底能不能拍蒜呢?

有材料学的大佬科普说,“菜刀不能用来拍蒜是有道理的,因为越是硬度高的材料,越不容易变形,那么在用刀的切面去拍打食物的时候,就容易导致断裂,这是错误的用法!但是这种刀非常的有好处,它可以长时间保持锋利,不需要经常磨。所以说,术业有专攻,如果你希望刀能够保持锋利,就不要拿这种刀来拍打食物。”

好吧,关于物理啊,还是材料啊,我是一个字都不懂,但是呢,这个结论我听懂了,也就是说,如果你希望菜刀能够拍蒜,就应该买普通的家用菜刀,避免使用更加锋利的片刀或者厨刀

其实吧,我觉得,对于一个非专业厨师的我来说,菜刀能够拍蒜还是很重要的,那么,买这样一把能够拍蒜的菜刀,到底要花多少钱呢?这个问题我觉得也很简单,我们只需要爬取一下家用菜刀的价格,就可以知道了。哦对了,按照专家的说法,家用菜刀都是可以拿来拍蒜的。如果不可以的话,那不是我的问题哦,需要找专家理论去

实现分析

爬取家用菜刀的价格,其实,前不久我还真做过一个类似的程序,就是爬取雪糕刺客的价格,很显然,这次的情况和上次也差不许多,只要把雪糕换成菜刀,就可以完成任务了大概

当然,如果你看过那篇文章的话,也许还会记得,直接通过requests爬取价格是不行的,因为这里存在js的动态渲染,商品的价格是通过js写入到页面之中的,因此如果我们直接发送requests请求的话,是没有办法得到数据的

为了能够解决js渲染问题,上一次我们采用了selenium启动了浏览器解决了这一个问题。这一次呢,为了和之前不同,我们也是尝试采用一下splash解决这个问题。当然啦,之前关于splash的使用,我已经有多篇文章讲述过了,如果你还不知道的话,那么可以看看我的这篇文章,学习splash的简单使用,那么,就开始了

原本通过selenium的时候,我们需要启动一个浏览器,控制该浏览器访问页面,然后返回driver.page_source。但是在splash的使用中,我们不需要做这些了,只需要请求对应的splash的render.html接口,就能解决这一问题了。所以说,splash真的很好用啊,不是吗

另外,唯一需要注意的是,如果我们希望了解到商品的价格,肯定是通过价格对其进行排序比较好,这样我们就可以清楚的观察到价格低的是多少,价格高的是多少了。当然啦,排序也是很简单的,自然不需要我们自己写什么排序方法,只需要使用python中的sorted就可以了

完整代码展示

import requests
from base64 import b64decode
from parsel import Selector

url = b64decode("aHR0cHM6Ly93d3cuamQuY29tL2NoYW5waW4vMjYzNjgzLmh0bWw=").decode()
url = "http://localhost:8050/render.html?url=" + url

r = requests.get(url)

s = Selector(r.text)
item_list = list()
item = s.xpath("//div[@class='gl-i-wrap']")

for i in item:
    title = i.xpath(".//a/em/text()").get()
    price = i.xpath(".//div[@class='p-price']//i/text()").get()
    item_list.append({
        "标题": title,
        "价格": float(price)
    })

item_list = sorted(item_list, key=lambda x: x["价格"])

for i in item_list:
    print("商品名:" + i["标题"])
    print("价格:" + str(i["价格"]) + "元")
    print()

程序运行结果展示如下

 

从这里,我们可以发现,原来买一个能拍蒜的菜刀,真的不是很贵,最便宜的只需要十多块钱就可以买到了


本次使用的splash服务,依然是本地搭建的splash,使用的端口是默认的8050。因此我们才可以通过http://localhost:8050进行访问

注意,如果你在本地没有运行splash的服务的话,是不能够直接运行这个代码哦,这会导致程序运行不成功

物联沃分享整理
物联沃-IOTWORD物联网 » 买一把能拍大蒜的菜刀要多少钱? 通过爬虫爬取菜刀价格

发表评论