仿scrapy的爬虫框架 (python3.5以上模块化,需要支持async/await语法)

本文主要是介绍仿scrapy的爬虫框架 (python3.5以上模块化,需要支持async/await语法),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

不知道是不是代码过多导致的,如果把代码放进code标签内提交以后直接进入500页面,所以就不贴代码了

传送门:https://github.com/zjl1110/WebCrawler

目录结构:

WebCrawler
    |----common(通用模块)
        |----__init__.py
        |----email_manager.py(邮件管理)
        |----error_code.py(错误码管理)
        |----html_manager.py(html页面的redis管理)
        |----item_manager.py(模仿scrapy的Field等类)
        |----log_manager.py(日志管理)
        |----random_headers.py(headers管理)
        |----redis_manager.py(redis管理)
        |----request_common.py(request通用函数)
        |----request_manager.py(request管理和response管理)
        |----url_manager.py(url的redis管理)
    |----spiders(爬虫实现)
        |----__init__.py
        |----xxx.py(爬虫例子)
    |----items.py(模仿scrapy的items)
    |----pipelines.py(模仿scrapy的Pipeline)
    |----run.py(入口函数)
    |----setting.py(配置文件)


python版本3.5或者以上(不然不支持async/await语法)
需要安装mongodb,redis
需要的第三方库
redis
aiohttp
lxml

pymongo



只需要在spiders下写爬虫,有点类似scrapy,因为格式是照着scrapy的格式仿写的
按照spiders下的例子仿写就可以了解大致用法



基本熟悉写法以后就可以专注写爬虫,周边模块已经写得差不多,利用redis模块也可以扩展成简单的分布式,因为只花了两天写的,还会碰到一些问题,可以交流,我在工作中碰到问题也会及时修改这里的代码,让代码的适应性更强一点,应用更广泛


这个算是一个爬虫框架吗?????





这篇关于仿scrapy的爬虫框架 (python3.5以上模块化,需要支持async/await语法)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1110788

相关文章

GSON框架下将百度天气JSON数据转JavaBean

《GSON框架下将百度天气JSON数据转JavaBean》这篇文章主要为大家详细介绍了如何在GSON框架下实现将百度天气JSON数据转JavaBean,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录前言一、百度天气jsON1、请求参数2、返回参数3、属性映射二、GSON属性映射实战1、类对象映

Python异步编程之await与asyncio基本用法详解

《Python异步编程之await与asyncio基本用法详解》在Python中,await和asyncio是异步编程的核心工具,用于高效处理I/O密集型任务(如网络请求、文件读写、数据库操作等),接... 目录一、核心概念二、使用场景三、基本用法1. 定义协程2. 运行协程3. 并发执行多个任务四、关键

解决若依微服务框架启动报错的问题

《解决若依微服务框架启动报错的问题》Invalidboundstatement错误通常由MyBatis映射文件未正确加载或Nacos配置未读取导致,需检查XML的namespace与方法ID是否匹配,... 目录ruoyi-system模块报错报错详情nacos文件目录总结ruoyi-systnGLNYpe

Python 函数详解:从基础语法到高级使用技巧

《Python函数详解:从基础语法到高级使用技巧》本文基于实例代码,全面讲解Python函数的定义、参数传递、变量作用域及类型标注等知识点,帮助初学者快速掌握函数的使用技巧,感兴趣的朋友跟随小编一起... 目录一、函数的基本概念与作用二、函数的定义与调用1. 无参函数2. 带参函数3. 带返回值的函数4.

C# async await 异步编程实现机制详解

《C#asyncawait异步编程实现机制详解》async/await是C#5.0引入的语法糖,它基于**状态机(StateMachine)**模式实现,将异步方法转换为编译器生成的状态机类,本... 目录一、async/await 异步编程实现机制1.1 核心概念1.2 编译器转换过程1.3 关键组件解析

Python Web框架Flask、Streamlit、FastAPI示例详解

《PythonWeb框架Flask、Streamlit、FastAPI示例详解》本文对比分析了Flask、Streamlit和FastAPI三大PythonWeb框架:Flask轻量灵活适合传统应用... 目录概述Flask详解Flask简介安装和基础配置核心概念路由和视图模板系统数据库集成实际示例Stre

Olingo分析和实践之OData框架核心组件初始化(关键步骤)

《Olingo分析和实践之OData框架核心组件初始化(关键步骤)》ODataSpringBootService通过初始化OData实例和服务元数据,构建框架核心能力与数据模型结构,实现序列化、URI... 目录概述第一步:OData实例创建1.1 OData.newInstance() 详细分析1.1.1

MySQL 多列 IN 查询之语法、性能与实战技巧(最新整理)

《MySQL多列IN查询之语法、性能与实战技巧(最新整理)》本文详解MySQL多列IN查询,对比传统OR写法,强调其简洁高效,适合批量匹配复合键,通过联合索引、分批次优化提升性能,兼容多种数据库... 目录一、基础语法:多列 IN 的两种写法1. 直接值列表2. 子查询二、对比传统 OR 的写法三、性能分析

Spring 框架之Springfox使用详解

《Spring框架之Springfox使用详解》Springfox是Spring框架的API文档工具,集成Swagger规范,自动生成文档并支持多语言/版本,模块化设计便于扩展,但存在版本兼容性、性... 目录核心功能工作原理模块化设计使用示例注意事项优缺点优点缺点总结适用场景建议总结Springfox 是

Python的端到端测试框架SeleniumBase使用解读

《Python的端到端测试框架SeleniumBase使用解读》:本文主要介绍Python的端到端测试框架SeleniumBase使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全... 目录SeleniumBase详细介绍及用法指南什么是 SeleniumBase?SeleniumBase