IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 买一个能拍蒜的菜刀要多少钱?通过爬虫爬取菜刀价格 -> 正文阅读

[Python知识库]买一个能拍蒜的菜刀要多少钱?通过爬虫爬取菜刀价格

需求分析

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

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

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

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

实现分析

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

当然,如果你看过那篇文章的话,也许还会记得,直接通过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的服务的话,是不能够直接运行这个代码哦,这会导致程序运行不成功

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-07-21 21:30:58  更:2022-07-21 21:31:31 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 12:10:53-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码