一日一技:实现有过期时间的LRU缓存摄影:产品经理下厨:kingname在一日一技:实现函数调用结果的LRU缓存一文中,我们提到Python自带的LRU缓存lru_cache。通过这个装饰器可以非常轻松地实现缓存。现在我们考虑下面这个应用场景:MongoDB中有100对id-用户名的对应关系,我从Redis中持续不断读取id,如果id能在MongoDB中找到对应关系,那么就把对应的用户名打印出来。
分类:
其他好文 时间:
2020-12-08 12:05:48
阅读次数:
5
一日一技:为什么年代久远的Python项目里面那么多默认参数?摄影:产品经理蜡烛上面的跑马灯在写Python代码的时候,大家可能会在不知不觉中使用一些设计范式。我们来看两个例子。假设有一个类People:classPeople:def__init__(self,name,age,sex):self.name=nameself.age=ageself.sex=sexdefdance(self):pr
分类:
编程语言 时间:
2020-12-08 12:05:35
阅读次数:
6
GNEv0.1正式发布:4行代码开发新闻网站通用爬虫摄影:产品经理GNE比羊肉面还香!GNE(GeneralNewsExtractor)是一个通用新闻网站正文抽取模块,输入一篇新闻网页的HTML,输出正文内容、标题、作者、发布时间、正文中的图片地址和正文所在的标签源代码。GNE在提取今日头条、网易新闻、游民星空、观察者网、凤凰网、腾讯新闻、ReadHub、新浪新闻等数百个中文新闻网站上效果非常出色
分类:
Web程序 时间:
2020-12-08 12:05:08
阅读次数:
8
对于Android端的自动化测试,ADB的重要性不言而喻,很多开源的自动化框架操作大都是利用ADB命令来完成。下面对ADB在平时自动化操作过程中一些问题做一个汇总。1、ADB简介ADB全称:AndroidDebugBridge,是一种命令行工具,方便PC端和手机端进行通信。只需要去官网下载AndroidSDK,然后根据ADB文件的路径配置环境变量即可。2、连接设备进入设置里的开发者选项,开启开发者
分类:
数据库 时间:
2020-12-08 12:04:47
阅读次数:
6
你经常看到却经常忽视的init.py有什么用?摄影:产品经理有了它,乐高已经不香了Python初学者在阅读一些Python开源项目时,常常会看到一个叫做init.py的文件。下图为著名的第三方库requests的源代码:那么init.py有什么用呢?本文介绍它的两个用途。精简导入路径假设我们有两个文件main.py与writer.py,他们所在的文件结构如下图所示:main.py在DocParse
分类:
其他好文 时间:
2020-12-08 12:04:29
阅读次数:
3
1目标场景经常看到有朋友在闲鱼卖些小东西又或是自己擅长的一些技能,都能为他们带来不错的睡后收入。闲鱼上大量的商品,很难精准判断哪些受欢迎,哪些好卖;一个个录入数据去做数据分析,浪费时间的同时,效率也极其的低效。本篇文章的目的是利用Python自动化来获取某类商品中最好卖的商品以供参考。ps:本文仅限用于技术交流,请勿用于其他用途。2准备工作在编写代码之前,需要做如下准备工作:1、配置好Androi
分类:
编程语言 时间:
2020-12-08 12:04:07
阅读次数:
5
为aiohttp爬虫注入灵魂摄影:产品经理与产品经理在苏州的小生活听说过异步爬虫的同学,应该或多或少听说过aiohttp这个库。它通过Python自带的async/await实现了异步爬虫。使用aiohttp,我们可以通过requests的api写出并发量匹敌Scrapy的爬虫。我们在aiohttp的官方文档上面,可以看到它给出了一个代码示例,如下图所示:我们现在稍稍修改一下,来看看这样写爬虫,运
分类:
Web程序 时间:
2020-12-08 12:03:47
阅读次数:
9
Kafka里面的信息是如何被消费的?摄影:产品经理跟着产品经理去苏州吃面作为一个爬虫工程师,Kafka对你而言就是一个消息队列,你只需要掌握如何向里面写入数据,以及如何读取数据就可以了。请谨记:使用Kafka很容易,但对Kafka集群进行搭建、维护与调优很麻烦。Kafka集群需要有专人来维护,不要以为你能轻易胜任这个工作。”本文,以及接下来的几篇针对Kafka的文章,我们面向的对象都是爬虫工程师或
分类:
其他好文 时间:
2020-12-08 12:03:19
阅读次数:
3
为什么每一个爬虫工程师都应该学习Kafka摄影:产品经理与产品经理环游世界的瞬间这篇文章不会涉及到Kafka的具体操作,而是告诉你Kafka是什么,以及它能在爬虫开发中扮演什么重要角色。一个简单的需求假设我们需要写一个微博爬虫,老板给的需求如下:开发爬虫对你来说非常简单,于是三下五除二你就把爬虫开发好了:接下来开始做报警功能,逻辑也非常简单:再来看看统计关键词的功能,这个功能背后有一个网页,会实时
分类:
其他好文 时间:
2020-12-08 12:02:43
阅读次数:
2
一日一技:不使用try...except掩盖一些已知异常摄影:产品经理下厨:kingname产品经理的母上送的大闸蟹在我们写代码的过程中,可能会遇到很多很多的异常,其中有一些异常,我们知道它无关紧要,可以忽略,那么我们的代码可能会这样写:nums=[1,2,3,‘4‘,5,6]fornuminnums:try:print(num+1)exceptTypeError:pass在这段代码中,需要让列表
分类:
其他好文 时间:
2020-12-08 12:02:15
阅读次数:
2
一日一技:在Python中实现函数重载摄影:产品经理下厨:kingname假设你有一个函数connect,它有一个参数address,这个参数可能是一个字符串,也可能是一个元组。例如:connect(‘123.45.32.18:8080‘)connect((‘123.45.32.18‘,8080))你想在代码里面兼容这两种写法,于是你可能会这样写代码:defconnect(address):ifi
分类:
编程语言 时间:
2020-12-08 12:01:57
阅读次数:
6
一日一技:如何从Redis的列表中一次性pop多条数据?摄影:产品经理产品经理说我炒的蛋炒饭比图中好吃当我们想从Redis的列表里面持续弹出数据的时候,我们一般使用lpop或者rpop:importredisclient=redis.Redis()whileTrue:data=client.lpop(‘key‘)ifnotdata:breakprint(f‘弹出一条数据:{data.decode(
分类:
其他好文 时间:
2020-12-08 12:01:42
阅读次数:
2
一日一技:在Python里面的常用常量字符串摄影:产品经理地点:龙井村曾经,当我想实现:从24个小写字母中随机选择一个字母的时候,我是这样写代码的:importrandomletter=random.choice(‘qwertyuiopasdfghjklzxcvbnm‘)后来,我知道了,原来代码可以这样写:importrandomimportstringletter=random.choice(s
分类:
编程语言 时间:
2020-12-08 12:01:30
阅读次数:
5
如何使用Flupy构建数据处理管道摄影:产品经理厨师:kingname经常使用Linux的同学,肯定对|这个符号不陌生,这个符号是Linux的管道符号,可以把左边的数据传递给右边。例如我有一个spider.log文件,我想查看里面包含"ERROR"关键词,同时时间为2019-11-23的数据,那么我可以这样写命令:catspider.log|grepERROR|grep"201
分类:
其他好文 时间:
2020-12-08 12:01:17
阅读次数:
2
温馨提示:本文基于Kafka2.2.1版本。如果觉得源码阅读比较枯燥,本文的中间有Sender线程的工作流程图。上文《源码分析Kafka消息发送流程》已经详细介绍了KafkaProducersend方法的流程,该方法只是将消息追加到KafKaProducer的缓存中,并未真正的向broker发送消息,本文将来探讨Kafka的Sender线程。在KafkaProducer中会启动一个单独的线程,其名
分类:
编程语言 时间:
2020-12-08 12:00:53
阅读次数:
6
一日一技:使用PPT进行扣图,让你抛弃PhotoShop摄影:产品经理买单:kingname说到移除图片背景,很多人想到的是使用PhotoShop这种大型软件来处理。但实际上,最新版的PowerPoint就能实现这个目的。首先,我们把图片添加到PPT中,如下图所示。然后双击图片,进入图片编辑状态,如下图所示:此时,在左上角可以看到移除背景的按钮。点击它。PPT此时会自动猜测哪些内容可能是你要移除的
分类:
其他好文 时间:
2020-12-08 12:00:32
阅读次数:
2
一日一技:在Python中像字典一样持久化数据摄影:产品经理买单:kingname我们知道,如果我们在Python中想把一段数据持久化到硬盘上,最简单的办法就是写文件:withopen(‘data.txt‘,‘w‘,encoding=‘utf-8‘)asf:f.write(‘username:1234567\n‘)f.write(‘password:9876543\n‘)但这样做有一个弊端,就是在
分类:
编程语言 时间:
2020-12-08 12:00:14
阅读次数:
6