美文网首页
爬虫周末总结

爬虫周末总结

作者: 唐朝集团 | 来源:发表于2018-12-02 19:38 被阅读0次

scrapy engine:负责spider,ltenepipeline中间通讯,信号数据传递
scheduler:负责接收引擎发送request的请求,并按一定方式整理排列,入列当引擎需要时会还给引擎
downloader:负责下载scrapy engine发送所有requeste请求,将responses交给scrapy engine 有引擎交给spider处理
爬虫文件:负责所有responses,从中分析提取数据,获取item字段需要的数据,并将需要跟进的URL提交给引擎,然后再次进入调度器
item pipeline:负责处理从spider获取到的item并惊醒后期处理,进行分析过滤存储
Downloader middlewares:其实就是一个扩展的下载功能组件
spider middlewares:是一个扩展操作引擎的中间通信的功能中间组件
多线程的简单理解:
使用threading模块
如果某个子线程的daemon属性为False,主线程结束时会检测该子线程是否结束,如果该子线程还在运行,则主线程会等待它完成后再退出如果某个子线程的daemon属性为True,主线程运行结束时不对这个子线程进行检查而直接退出同时所有daemon值为True的子线程将随主线程一起结束,而不论是否运行完成属性daemon的值默认为False,如果需要修改,必须在调用start()方法启动线程之前进行设置
我们可以知道使用了多线程并发操作花费的时间会少很多,当调用了start方法才能启动线程之前进行设置,多线程的程序执行顺序并不确定,当线程被阻塞等待结束后线程就进入了准备就绪状态正在等待调度,而线程则会调度将自行选择一个线程执行。
线程互斥锁:
线程互斥锁有两个状态,一个状态是锁定和非锁定状态
当我们某个线程需要共享数据时,像锁定,此时资源就变成为锁定状态,其他不能更改(其实就是线程锁死其他线程不能操作,除非这个线程释放了资源,这个线程变成了非锁定状态)只有线程变成非锁定状态其他线程才能再次锁定该资源,互斥锁保证了每次只有一个线程进行写入操作,从而保证多线程我们数据的正确性
创建一个队列:queue_obj = queue.Queue(maxsize=30)
maxsize :表示允许存储的最 (FIFO) : 对列--先进先出
存值 : queue_obj.put( )
取值 : queue_obj.get( )
获取队列的大小 : queue_obj.qsize( )
判断队列是否满 : queue_obj.full( )
判断队列是否为空 : queue_obj.empty()
队列是线程安全的,list,dict 是非线程安全的,使用的时候最好使用线程锁
多线程
什么是多任务:同时执行多个任务 例如:同时打开微信,QQ,word,优酷,浏览器
同时执行--并行
单核同时执行的任务数量只有一个,但是看上去像是在执行多个任务,是 因为切换的间隔时间级短
多核cpu:同时可以执行多个任务,假如任务量超过核心数,在某个核心下 任务会交替执行
并发和并行的概念:
并发:单核cpu同时执行多个任务,任务是同时发起的,但是并不是同时执行,而是交替执行
并行:任务数量小于或等于核心数,这个时候每一个核心都在执行任务,任务是同时执行的,
实现多任务的手段(方式):
1.多线程
2.多进程
3.协程
线程之间的操作是无序的
一个线程下面有一个主线程
线程:相当于打开一个浏览器
进程:相当于在浏览器里面打开多个窗口

相关文章

  • 爬虫周末总结

    scrapy engine:负责spider,ltenepipeline中间通讯,信号数据传递scheduler:...

  • 资料

    Python爬虫系列(一)初期学习爬虫的拾遗与总结(11.4更) Python爬虫学习系列教程 Python爬虫学习手册

  • 小小分布式爬虫从架构到实现(一)

    做了一年多的爬虫相关工作了,来总结总结工作吧。 爬虫,是这样开始的…… 首先,为啥要做这个爬虫呢?因为公司在做大数...

  • 爬虫

    总结爬虫流程:爬取--->解析--->存储什么是爬虫?请求网站并提取数据的自动化程序就叫做爬虫。爬虫的主要目的?是...

  • jq用python爬虫抓站的一些技巧总结

    用python爬虫抓站的一些技巧总结 原文出处: observer 累积不少爬虫抓站的经验,在此总结一下,那么...

  • #我对Python表个白# —— 爬虫学习总结(2)

    总结 | 反思 | 分享 学习Python爬虫2个月了,一路惊喜一路bug,苦辣酸甜不言中。今天正好周末,做一下阶...

  • Python爬虫基础教程(三)

    九、多线程爬虫 9.1利用多线程爬虫爬取糗事百科的资源: 十、爬虫代码总结: 要实现一个完整的爬虫,无外乎4...

  • 2020-03-28 respuests 的使用

    总结:新的爬虫方法,比urllib好理解。

  • scrapinghub 部署scrapy爬虫

    请首先注册scrapinghub,参见以下两篇文章: 利用scrapinghub发布你的爬虫项目 爬虫总结(三)-...

  • 爬虫的测试方法

    很多同学不知道爬虫应该怎么进行测试,我也是刚接触过一点爬虫测试的小白,通过对爬虫的分析,总结了爬虫的测试方法,有其...

网友评论

      本文标题:爬虫周末总结

      本文链接:https://www.haomeiwen.com/subject/zmqscqtx.html