...
一 背景知识 爬虫的本质就是一个socket客户端与服务端的通信过程,如果我们有多个url待爬取,只用一个线程且采用串行的方式执行,那只能等待爬取一个结束后才能继续下一个,效率会非常低。 需要强调的是:对于单线程下串行N个任务,并不完全等同于低效,如果这N个任务都是纯计算的任务,那么该线程对cpu的利用率仍然会很高,之所以单线程下串行多个爬虫任务低效,是因为爬虫任务是明显的IO密集型程序。 关于 ...
2019-11-06 15:55 2 406 推荐指数:
...
05-数据库 数据库,顾名思义是储存数据的仓库,常见的管理数据库的软件被称为数据库管理系统(DBMS, Database Management System), 常见的DBMS有 MySQL、PostgreSQL、SQLite、MongoDB。这些常见的DBMS我们可以把他们理解为专门负责 ...
单例模式 1请手写一个单例 2单例模式的优点和应用? 3单例模式的缺点 ...
目录 一 引子 二 数字类型int与float 2.1 定义 2.2 类型转换 2.3 使用 三 字符串 3.1 ...
线程池(适当使用) 单线程+异步协程(推荐) event_loop:事件循环,相当于一个无限循环,我们可以把一些函数注册到这个事件循环上,当满足某些条件的时候,函数就会被循环 ...
引入 很多同学对于异步这个概念只是停留在了“听说很NB”的认知层面上,很少有人能够在项目中真正的使用异步实现高性能的相关操作。本节课,咱们就一起来学习一下,爬虫中如何使用异步实现高性能的数据爬取操作。 背景 其实爬虫的本质就是client发请求批量获取server的响应数据,如果我们有多个 ...
三种方式: 1.多进程多线程(不建议) 2.进程池或者线程池(适当) 3.单线程+异步协程(推荐) 多进程多线程 占用cpu资源,不建议使用 基于线程池的异步爬虫 结果: 单线程+异步协程 基本使用 task ...
引入 很多同学对于异步这个概念只是停留在了“听说很NB”的认知层面上,很少有人能够在项目中真正的使用异步实现高性能的相关操作。本节课,咱们就一起来学习一下,爬虫中如何使用异步实现高性能的数据爬取操作。 背景 其实爬虫的本质就是client发请求批量获取server的响应数据,如果我们有多个 ...