摘要: 一、背景 之前爬虫使用的是requests+多线程/多进程,后来随着前几天的深入了解,才发现,对于爬虫来说,真正的瓶颈并不是CPU的处理速度,而是对于网页抓取时候的往返时间,因为如果采用requests+多线程/多进程,他本身是阻塞式的编程,所以时间都花费在了等待网页结果的返回和对爬取到的数据的写入 阅读全文
posted @ 2019-09-08 18:16 PythonGirl 阅读(5177) 评论(11) 推荐(12) 编辑
摘要: 一、简介 为了提高爬虫程序效率,由于python解释器GIL,导致同一进程中即使有多个线程,实际上也只会有一个线程在运行,但通过request.get发送请求获取响应时有阻塞,所以采用了多线程依然可以提高爬虫效率。 多线程爬虫注意点1.解耦 整个程序分为4部分,url list模块、发送请求,获取响 阅读全文
posted @ 2019-09-08 15:11 PythonGirl 阅读(490) 评论(0) 推荐(0) 编辑
摘要: 对于操作系统来说,一个任务就是一个进程(Process),比如打开一个浏览器就是启动一个浏览器进程,打开一个记事本就启动了一个记事本进程,打开两个记事本就启动了两个记事本进程,打开一个Word就启动了一个Word进程。 有些进程还不止同时干一件事,比如Word,它可以同时进行打字、拼写检查、打印等事 阅读全文
posted @ 2019-09-08 10:37 PythonGirl 阅读(579) 评论(0) 推荐(1) 编辑
摘要: 下载中间件简介 在Scrapy中,引擎和下载器之间有一个组件,叫下载中间件(Downloader Middlewares)。因它是介于Scrapy的request/response处理的钩子,所以有2方面作用: (1)引擎将请求传递给下载器过程中,下载中间件可以对Requests进行一系列处理。比如 阅读全文
posted @ 2019-09-08 08:07 PythonGirl 阅读(1019) 评论(3) 推荐(2) 编辑