文章目录
- 1. 简述 requests模块的作用及基本使用
- 2. 简述 beautifulsoup模块的作用及基本使用
- 3. 简述 seleninu模块的作用及基本使用
- 4. scrapy框架中各组件的工作流程
- 5. 在scrapy框架中如何设置代理(两种方法)
- 6. scrapy框架中如何实现大文件的下载
- 7. scrapy中如何实现限速
- 8. scrapy中如何实现暂定爬虫
- 9. scrapy中如何进行自定制命令
- 10. scrapy中如何实现的记录爬虫的深度
- 11. scrapy中的pipelines工作原理
- 12. scrapy的pipelines如何丢弃一个item对象
- 13. 简述scrapy中爬虫中间件和下载中间件的作用
- 14. scrapy-redis组件的作用
- 15. scrapy-redis组件中如何实现的任务的去重
- 16. scrapy-redis的调度器如何实现任务的深度优先和广度优先
- 18. twisted是什么以及和request的区别
- 19. http请求的本质
- 20. scrapy框架的组件以及执行流程
1. 简述 requests模块的作用及基本使用
2. 简述 beautifulsoup模块的作用及基本使用
3. 简述 seleninu模块的作用及基本使用
4. scrapy框架中各组件的工作流程
5. 在scrapy框架中如何设置代理(两种方法)
6. scrapy框架中如何实现大文件的下载
7. scrapy中如何实现限速
8. scrapy中如何实现暂定爬虫
9. scrapy中如何进行自定制命令
10. scrapy中如何实现的记录爬虫的深度
11. scrapy中的pipelines工作原理
- 第一步:判断当前ScrapyPipelinePipeline类中是否含有from_crawler,如果有from_crawler,则obj = ScrapyPipelinePipeline.from_crawler(……)如果没有:bj = ScrapyPipelinePipeline()
- 第二步:obj.open_spider(self, spider)
- 第三步:obj.process_item(self, item, spider),obj.process_item(),……
- 第四步:obj.close_spider(self, spider)
12. scrapy的pipelines如何丢弃一个item对象
使用raise DropItem()。
13. 简述scrapy中爬虫中间件和下载中间件的作用
14. scrapy-redis组件的作用
15. scrapy-redis组件中如何实现的任务的去重
16. scrapy-redis的调度器如何实现任务的深度优先和广度优先
18. twisted是什么以及和request的区别
requests是一个python实现可以伪造浏览器发送请求的http请求模块,requests只有一个功能就是封装socket发送请求。twisted是基于事件循环的异步非阻塞网络框架,功能有封装socket发送请求和单线程完成并发请求(第一个请求发送之后不等待请求的结果继续发第二个请求)。注意twisted的三个关键字:非阻塞(不等待)、异步(回调)、事件循环(一直循环去检查状态)。
19. http请求的本质
请求头和请求体,有两种请求体,一种是&符号连接的,另外一种是json格式的。
20. scrapy框架的组件以及执行流程
- 引擎找到要执行的爬虫(scrapy crawl xxx会找到找到xxx爬虫名),并执行爬虫的start_requests方法,并得到一个迭代器
- 迭代器循环时会获取request对象,而request对象中封装了要访问的url和回调函数
- 将所有request对象(任务)放到调度器中,用于以后被下载器下载。
- 下载器去调度器中获取要下载任务(就是request对象),下载完成后执行回调函数
- 回到spider的回调函数中[如果yield Request()是重新放到调度器中去,如果yield Item()对象叫个pipeline]
转载:https://blog.csdn.net/Thanlon/article/details/100717466
查看评论