2021.06.27 技術シェア
【技术浅谈】手把手教你用Python监听PS5最低价格

前言


前一阵子PS5开始发售,不带光驱的数字版售价4万日元加税,带光驱的通常版售价为5万日元加税,小编也是PS系列的忠实粉丝,为了期待已久的新机器,这点钱还是肯花(卖)的(肾)。不料刚一发布,亚马逊和乐天上面便是“現在在庫切れです”。前前后后参加了四五次抽选也是无一幸免,于是便关注起了二手网站的黄牛价格。


图片


首先看的是日本最大的二手网站“メルカリ”,这个网站的搜索机制很好,不但可以规定价格范围,还可以筛掉含有某些特定词语的商品。


于是小编设定了价格范围在6w~10w之间,只显示贩卖中,搜索词条为“ps5”,按价格由低到高排序结果,发现绝大多数数字版PS5都是在7~9万之间,通常版PS5在8~10万日元左右。


又刷新了几次,偶然间看到了通常版卖6万5的价格,于是立马点击购买按钮,不料手速太慢,被别人抢先了~ 


作为一个程序猿,怎么可以比“麻瓜“们更晚看到最新动态呢?于是就来到了我们今天的主题,如何做一个二手网站的价格监听器。


 


图片


#声明:上面都是PS5刚发布不久的价格,小编编辑本文的时候,价格已经高到可以原价买两个机器了,下面所使用的截图中的程序监听到的价格也自然是当前的价格,大家不用感到失望,毕竟这个技术还可以用来监听其他商品。


 

使用的工具


l  Python 3.7 +


l  BeautifulSoup4 官方文档


l  Google Chrome浏览器


l  VSCode代码编辑器


 

Python 环境配置


电脑里还没有python3.7以上环境的同学,可以点击anaconda官网,找到合适自己系统的版本,按照指示下载安装就可以了。


安装好之后打开terminal或者cmd,输入python,回车,出现类似下面的信息则说明安装成功。


图片

BeautifulSoup配置


打开terminal(mac)或者cmd(win),输入pip install beautifulsoup4回车即可。


 

安装VSCode


小编使用的是vscode编辑代码,大家可以使用自己喜欢的编辑器。


打开官网,选择适合自己的版本下载安装即可。


 

基本思路


做一个网络爬虫不断爬取メルカリ上用条件检索得到的所有PS5商品,再按价格排序,通过字符串解析获取最低价位的几个商品,将它们的价格和链接保存到json文件里实时刷新并显示出来。


图片

 

完整代码


图片


图片


代码文件我放在了github里,有兴趣的小伙伴可以clone一下,有关git的用法以后我也会单独写一篇文章介绍。


github地址:https://github.com/mounan/PriceListener


 

代码中有些地方是可以自己调整的:


· 第26行是检索价格范围,当前为5W~8W,如果要搜索6w到10w以内的就把范围改成(60000,10000)


· 第32行是不希望标题和描述信息中含有的词汇列表,这里因为不想买数字版的,所以我加入了关于数字版的词汇('デジタル', 'digital', 'Digital', 'CFI-1000B01', 'Degital', 'デシダル', 'ディスクドライブ非搭載'),你也可以自己添加词汇,这个方法可以有效筛掉一些没用的商品信息。


· 第34行是希望标题和描述信息中含有的词汇,你可以添加一些你想要的商品一定会含有的词汇,可以有效筛选出目标商品的信息。


剩下的代码大家可以不需要更改,有兴趣的可以仔细看一下,我就不赘述了。


 

运行程序


运行main.py会在同路径下生成一个data.json文件,打开它,会看到实时更新的信息,这些是检索条件范围内的PS5的merucari链接以及价格,价格按照由高到低排序,想要显示出其他信息的话,可以在代码中作相应的更改。


图片


因为merucari是登录制,如果想要拼手速的小伙伴可以先注册登录一下,只要在电脑的网页端登录一次,程序访问的时候就会自动登录了。从上面的结果中能看到很多异常便宜的价格,其实这些都是挂在那里不卖的商品(别问我怎么知道的)。


现在想要靠这个方法买到便宜的PS5可能会不太实际,但是这个技术也可以用来干别的,比如分析网购市场哪种商品目前销量最高,或者是做同种类商品的价格趋势走向监测之类的分析任务,具体做什么,就看你有什么样的需求了。


 


图片