一日一技:如何从大量商品数据里面找到降价商品?
相信很多做爬虫的同学都会爬电商网站,每天爬一次,然后监控商品是否降价。如果你只监控一个商品,那么是否降价这非常容易判断,但如果你要找到这个网站里面所有降价的商品,那就非常麻烦了。
如下图所示,是美国电商沃尔玛的全站商品数据:
每个商品每天都会爬一次,一共有61w+条数据。里面有N个商品降价了,现在需要把这些降价的商品找出来。
相信很多做爬虫的同学都会爬电商网站,每天爬一次,然后监控商品是否降价。如果你只监控一个商品,那么是否降价这非常容易判断,但如果你要找到这个网站里面所有降价的商品,那就非常麻烦了。
如下图所示,是美国电商沃尔玛的全站商品数据:
每个商品每天都会爬一次,一共有61w+条数据。里面有N个商品降价了,现在需要把这些降价的商品找出来。
我们有时候需要把一些机密文件发给多个客户,为了避免客户泄露文件,会在机密文件中添加水印。每个客户收到的文件内容相同,但是水印都不相同。这样一来,如果资料泄露了,通过水印就知道是从谁手上泄露的。
今天,一个做市场的朋友找我咨询一个加水印的问题,如下图所示:
他有一个Excel文件,文件里面有10000个经销商的名字,他要把价目表PDF发给这些经销商,每个经销商收到的PDF文件上面的水印都是这个经销商自己的名字。
这个需求手动操作肯定要累死人。但是如果用Python来做,就非常简单。代码不超过30行。
我在多篇文章里面都说过,我非常喜欢使用Yaml格式来写配置文件。Yaml是一个对人非常友好的配置格式。
有时候,我们在开发环境、测试环境和线上环境会有多套不同的配置文件,如何在不修改代码的情况下方便的切换配置文件呢?我以前的文章讲过一种方法,使用环境变量来指定配置文件名。今天我们来介绍一个更先进的工具,专门用来高效加载配置文件。这就是Facebook开源的Hydra。
我们知道,协程本质上是单线程单进程,通过充分利用IO等待时间来实现高并发。在IO等待时间之外的代码,还是串行运行的。因此,如果协程非常多,多少每个协程内部的串行代码运行时间超过了IO请求的等待时间,那么它的并发就会有一个上限。
上周的文章《一日一知:国内爬虫开发人员的未来》发布以后,很多同学私信我表示对爬虫出海很有兴趣,希望我能详细介绍一下。因此,我准备用几篇文章来介绍爬虫出海的具体做法细节和注意事项。
今天我们的话题是,如何规避法律风险。
在多年写代码的过程中,我总结了不少常用的工具函数。这些工具函数有的能够实现快速重试网络请求,有的可以把任意格式的时间转成标准格式,还有的可以自动生成正则表达式。
开篇先抛出我的观点:希望各位做爬虫的同学,尽快,尽可能多地做海外的爬虫项目,爬海外的网站。这才是你们新的未来。
我最近两年时间,已经没有做过任何国内网站的爬虫了,根据这两年爬海外网站的一些经验,谈谈我的发现和想法。
不是程序员的同学,别忙着走。不要看到Github就觉得这篇文章跟你无关。无论你是不是程序员,这篇文章都能帮到你。
在公众号粉丝群里面,经常有同学问:为什么自己的爬虫明明设置了代理,但一访问网站就能被发现。我总结了几种常见的情况。
实际上,网站要识别你是否使用了代理,并不一定非要什么高深的反爬虫机制,也不需要使用AI识别用户行为。下面这几种情况,要识别代理简直是易如反掌。