首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
未闻 Code
青南
创建于2021-06-19
订阅专栏
未闻 Code 文章同步。
等 25 人订阅
共43篇文章
创建于2021-06-19
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
逆向操作,把被压平的字典还原成嵌套字典
在使用 yield 压平嵌套字典有多简单?这篇文章中,我们讲到,要把一个多层嵌套的字典压平,可以使用yield关键字来实现。 今天,我们倒过来,把一个已经被压平的字典还原成嵌套字典。 要实现这个需求,我们分成两个主要的步骤。 需要注意的是,unpack函数的第一个参数是一个列表…
剖析灵魂,为什么aiohttp默认的写法那么慢?
在上一篇文章中,我们提到了aiohttp官方文档中的默认写法速度与requests单线程请求没有什么区别,需要通过使用asyncio.wait来加速aiohttp的请求。今天我们来探讨一下这背后的原因。 我们使用一个可以通过URL设定返回延迟的网站来进行测试,网址为:http:…
为 aiohttp 爬虫注入灵魂
听说过异步爬虫的同学,应该或多或少听说过aiohttp这个库。它通过 Python 自带的async/await实现了异步爬虫。 使用 aiohttp,我们可以通过 requests 的api写出并发量匹敌 Scrapy 的爬虫。 我们现在稍稍修改一下,来看看这样写爬虫,运行效…
如何使用Python读写Kafka?
关于Kafka的第三篇文章,我们来讲讲如何使用Python读写Kafka。这一篇文章里面,我们要使用的一个第三方库叫做kafka-python。大家可以使用pip或者pipenv安装它。下面两种安装方案,任选其一即可。 这篇文章,我们将会使用最短的代码来实现一个读、写Kafka…
Kafka 里面的信息是如何被消费的?
作为一个爬虫工程师,Kafka 对你而言就是一个消息队列,你只需要掌握如何向里面写入数据,以及如何读取数据就可以m'ys'q作为一个爬虫工程师,Kafka 对你而言就是一个消息队列,你只需要掌握如何向里面写入数据,以及如何读取数据就何读取就可以可了。 本文,以及接下来的几篇针对…
为什么每一个爬虫工程师都应该学习 Kafka
这篇文章不会涉及到Kafka 的具体操作,而是告诉你 Kafka 是什么,以及它能在爬虫开发中扮演什么重要角色。 再来看看统计关键词的功能,这个功能背后有一个网页,会实时显示抓取数据量的变化情况,可以显示每分钟、每小时的某个关键词的抓取量。 最后一个需求,对微博数据进行情感分析…
每一位爬虫工程师都应该学习Kafka
本文不含kafka的具体使用代码,而是告诉你什么是kafka,以及如何在爬虫中使用它。
一日一技:在 Python 中实现函数重载
假设你有一个函数connect,它有一个参数address,这个参数可能是一个字符串,也可能是一个元组。例如: 这种写法简单直接,但是如果参数的类型更多,那么你就需要写很长的 if-elif-elif-...-else。代码看起来就非常不美观。 学习过 Java 的同学,应该对…
GNE v0.04版更新,支持提取正文图片与源代码
GeneralNewsExtractor以下简称GNE是一个新闻网页通用抽取器,能够在不指定任何抽取规则的情况下,把新闻网站的正文提取出来。 我们来看一下它的基本使用方法。 GNE 现在不会,将来也不会提供网页请求的功能,所以你需要自行想办法获取经过渲染以后的网页源代码。你可以…
使用 yield 压平多层嵌套字典列表混合数据
在上一篇文章里面,我们讲到了如何使用Python的yield关键字简化代码,压平多层嵌套字典的。 现在,请停下来,敲一敲代码,想想如何把处理列表的逻辑添加进去。 如果你使用return和递归,你可能确实需要这样写。 但如果你使用yield关键字,那么,你虽然也要修改代码,可是修…
使用 yield 压平嵌套字典有多简单?
你肯定想到了使用递归来解决这个问题,那么你可以试一试,看看你的递归函数有多少行代码。 今天,我们使用yield关键字来实现这个需求,在不炫技的情况下,只需要8行代码。在炫技的情况下,只需要3行代码。 要快速地把这个嵌套字典压扁,我们需要从下网上来处理字段。例如对于b->e->f…
写了那么久的Python,你应该学会使用yield关键字了
写过一段时间代码的同学,应该对这一句话深有体会:程序的时间利用率和空间利用率往往是矛盾的,可以用时间换空间,可以用空间换时间,但很难同时提高一个程序的时间利用率和空间利用率。 但如果你尝试使用生成器来重构你的代码,也许你会发现,在一定程度上,你可以既提高时间利用率,又提高空间利…
在 Jupyter 中如何重新导入特定的 Python 文件?
Jupyter 是数据分析领域非常有名的开发环境,使用 Jupyter 写数据分析相关的代码会大大节约开发时间。 设想这样一个场景:别的部门的同事传给你一个数据分析的模块,用于实现对数据的高级分析。模块里面有上百个函数。 现在,你需要使用 Jupyter 来调用这个分析模块。你…
如何通过字符串导入 Python 模块
我们知道,这里的Test.middlewares.ExceptionRetryMiddleware实际上对应了根目录下面的Test文件夹里面的middlewares.py文件中的ExceptionRetryMiddleware类。那么 Scrapy 是如何根据这个字符串,导入这…
使用迭代器接收数据并自动停止
假设有一个 Redis 集合,里面有 N 条数据,你不停从里面lpop数据,直到某一条数据的值为'Stop'字符串为止(已知里面必有一条数据为'Stop'字符串,但其位置不知道)。 现在问题来了,如果 Redis 里面的数据非常多,已经超过了你的内存容量怎么办?数据全部放在da…
如何用 Python让自己变成天选之子
你可以先不要往下看,放下手机,自己写一下代码,试一试 如何才能实现 gif 中的效果。 下面来为大家解密。 首先来看第一个知识点。Python 的自带模块是可以被覆盖的,所以我们先来定义一个函数: 实际上并不会,因为Python 的包导入机制决定了,在每个运行时内部,每个包只有…
GNE 预处理技术——如何移除特定标签但是保留文字到父标签
在开发新闻网页正文通用抽取器GNE的过程中,需要对目标网页的源代码进行一些预处理,从而提高正文抓取的准确性。其中之一就是把 <p>标签内部的 <span>标签中的文本,合并到<p>标签中,再删除 <span> 标签。 但在通用新闻抽取器里面不能这样写。因为并不是所有的<p>标签…
在Pyppeteer中正确隐藏window.navigator.webdriver
在我以前的一篇文章:一日一技:如何正确移除Selenium中window.navigator.webdriver的值,我讲到了如何在Selenium启动的Chrome中,通过设置启动参数隐藏window.navigator.webdriver,驳斥了网上垃圾文章中流传的使用Ja…
下一页