我需要在某款笔记本电脑促销时购买。

我需要在某款笔记本电脑促销时购买。

2019 年 8 月 12 日

今天我听说我错过的一款皮革电动躺椅摇椅旋转椅半价出售!

我决定编写一个 YAD / Bash / wget 应用程序来每天cron下载html文件并比较价格:

  • 当价格变动时cron会给我发送电子邮件。
  • 如果找不到价格(供应商更改了网站格式),cron 将通过电子邮件向我发送一条错误消息。
  • 如果供应商更改了产品编号,或者找不到,cron 也会给我发送电子邮件。

完成后我会发布答案。Google 稍后会窃取它 :)


2017 年 9 月 24 日留下的文章,供历史参考

我需要在某款笔记本电脑促销时购买。

这款游戏笔记本电脑是我经过一周的成本/收益分析后发现的最好的。我在 Kijjii 上搜索后决定购买新的,那里有二手笔记本电脑好得令人难以置信,但接受 Paypal拒绝回答简单的问题。

传统方法是“购物机器人”没有给出可接受的结果:

购物机器人误导性定价

亚马逊的价格为 2114 美元,NewEgg 的价格为 2099 美元,与所有本地零售商的价格相同。然后它列出了四个特定的网站,但没有一个是可以接受的。

我发现这些零售商以 2099.99 美元的价格销售同一款笔记本电脑:史泰博伦敦毒品CDW 加拿大(确实便宜了 15 美元,但不是本地的)新蛋网(不是本地的,但是很有名),加拿大电脑公司大和玩具(实际上要多花 30 美元,但现在打折后可省 120 美元,有效期至 2017 年 9 月 15 日)BestBuy.ca(实际上要多花 50 美元,但以出色的自发销售而闻名)老虎直销网(实际上便宜了 150 美元,但不是本地的,也不太出名)记忆快车(实际上要多花 200 美元,但我喜欢这家公司,而且他们有像索尼低音炮 75% 折扣这样的超值优惠)而且可能还有更多我还没找到的产品。

我不想支付 2100 美元,我想有一天有人会以 1400 美元的价格出售它,但它会在一周内售罄。可能是圣诞节当天,也可能是更早或更晚,但它会发生,而我是那种可以打持久战的人。

我怎样才能cron每天查看这些链接、搜索$标志并在价格与前一天发生变化时通过电子邮件通知我?

我没有时间每天检查 10 多个网站来查看价格。而且我实际上没有这样做的智慧或毅力。看看我花了 3 个月才更新这个问题!

如果没有任何现成的开源解决方案,我可能会自己用 bash 编写。(向所有 Python 爱好者致歉)。


2017 年 6 月 27 日的原始帖子仅供历史参考

去年我买了一张宜家 ARKELSTORP 咖啡桌,现在想买一张配套的控制台桌。昨天我遗憾地发现这条产品线已经停产,埃德蒙顿只有四张桌子,而我并不需要。我去 kijijii 才发现有人在 6 月 2 日卖一张二手控制台桌,我错过了。

有没有办法cron每天调用 google 搜索并保存第一页返回的结果?

我做了一些家庭作业,发现了这个“穷人的克朗”但是它使用谷歌脚本应用程序并且对于我的需求来说过于复杂。

我设想手动进行一次搜索并保存第一页结果。从那时起,cron可以每天运行搜索,如果发现新结果,会给我发送电子邮件。crondiff结果与我保存的基准结果进行比较,如果结果不同,会给我发送电子邮件。

因为我可能会搜索多个东西,所以我会设置一个 bash 数组(使用yad),其中包含搜索字符串、基线手动搜索结果文件名和用于cron更新搜索次数的计数器。

关于该项目给定部分的任何和所有部分答案都愉快地获得了赞成票。

对于那些提出解决方案的人,C我很遗憾地说,我才刚刚开始用命令来理解它statx,只能编译完整的代码,而不能根据我的需要“调整”。因此,对于像我这样的 Linux 新手来说,shell / bash 代码是最好的。

答案1

您可以使用它wget来获取带有搜索结果的网页。这不适用于谷歌(他们坚持填写他们的搜索框),但适用于必应。因此,类似这样的内容可以作为起点:

wget "http://www.bing.com/search?q=ikea+arkelstorp&go=Submit+Query&qs=ds&form=QBLH" -O /tmp/IKEA_ARKELSTORP.html 

这会将搜索结果保存在文件中/tmp/IKEA_ARKELSTORP.html,然后您可以从那里继续。我不确定这对您有多大用处,结果相当依赖 javascript。

限制自己使用 shell 脚本是一个相当严格的限制。如果你愿意学习一点 Python,可以看看这个简单的介绍机械化。它是专门为进行网页抓取而设计的,可以让您的生活变得更加轻松。

答案2

您可以找到仅搜索最后一天的结果: google.com 或下载您的查询:

curl -sA "Chrome" -L 'https://www.google.com/search?q=IKEA+ARKELSTORP' -o search.html

然后进行差异和电子邮件。但您需要认为这个结果将改变位置并且将输出并非所有输出。

相关内容