- 博客(10)
- 收藏
- 关注
原创 Scrapy-Redis并部署到gerapy实战之腾讯招聘
在这里我和以往不同的做法是实现了首个url自动插入到redis中,而不是手动插入,因为上传的文件是压缩包格式,并不会帮助你插入首个url,这就会导致代码会一直监听request队列,从而使程序一直等待下去。这里建议使用gerapy的时候最好再创建一个虚拟环境,应为gerapy会下载指定版本的scrapy。需要注意的是,这里scrapyd里面的需要配置一个scrapyd.conf文件,从而使宿主机能够访问到它。名字随便取,IP是你虚拟机的ip,端口号是6800,不要选认证,接着创建。
2024-06-02 11:49:47
267
原创 Scrapy-Redis原理和源码解析
1.爬取队列的实现:提供了三种队列,使用redis的列表或者有序集合来维护。2.去重的实现:使用redis的集合来保存request指纹,以实现重复过滤。3.中断后重新爬取的实现:中断后的redis队列并没有清空,再次启动时调度器的会从队列中取到下一个request,继续爬取。Redis Queue(队列):在Scrapy-Redis中,请求是储存在Redis的队列中的。每当Spider产生新的请求时,它们被添加到队列里。每当需要新的请求去下载时,就会从队列里取出。
2024-05-22 16:20:08
647
原创 07.Python中的协程学习笔记
更适用于你希望并发运行的协程,且需要它们的返回值或处理它们可能抛出的异常。而更适合于你需要更细粒度控制的情况,比如同时设定完成和未完成的任务集合,或者在部分任务完成时就进行一些操作。
2024-03-17 07:00:00
1953
1
原创 05.Python中的线程学习笔记
这里要说明的是主线程在每一次遇见 t = threading.Thread(target=work)的时候都会创建一个子线程,可以理解为细胞分裂,当然了子线程也可以创建子线程,只是在这里我们的代码没有体现而已啦。出现死锁的三种情况:1.同步锁上锁两次2.锁对象没有释放3.在全局中创建了两个锁对象,并且任务一上锁锁对象1,释放锁对象2,任务二上锁锁对象2,释放锁对象1。线程都会获取到各自的第一个锁,但在尝试获取第二个锁时,由于锁已经被对方线程获取,所以会被阻塞,从而使得两个线程都无法进行下去,造成了死锁。
2024-03-03 09:07:52
679
原创 Python中的面向对象编程学习笔记
类(Class)可以看作是创建对象的模板或蓝图。它定义了一组规则和结构,这些规则和结构用于描述如何创建特定类型的对象。可以理解为,类就像是一份建筑图纸,描述了一种特定类型的结构和行为,而基于这份图纸我们可以创建出许多具体的建筑(也就是对象)。在面向对象编程中,对象(Object)是实际存在的一个独立实体,在Python中,它是使用类的定义作为模版创建出来的。以类作为蓝图创建的每个对象都将具有类定义的相同结构(即它们都具有相同的属性和方法),但是它们的属性值可能会各不相同。
2024-02-19 18:24:12
577
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人