仿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

相关文章

华为鸿蒙HarmonyOS 5.1官宣7月开启升级! 首批支持名单公布

《华为鸿蒙HarmonyOS5.1官宣7月开启升级!首批支持名单公布》在刚刚结束的华为Pura80系列及全场景新品发布会上,除了众多新品的发布,还有一个消息也点燃了所有鸿蒙用户的期待,那就是Ha... 在今日的华为 Pura 80 系列及全场景新品发布会上,华为宣布鸿蒙 HarmonyOS 5.1 将于 7

C++ HTTP框架推荐(特点及优势)

《C++HTTP框架推荐(特点及优势)》:本文主要介绍C++HTTP框架推荐的相关资料,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. Crow2. Drogon3. Pistache4. cpp-httplib5. Beast (Boos

SpringBoot基础框架详解

《SpringBoot基础框架详解》SpringBoot开发目的是为了简化Spring应用的创建、运行、调试和部署等,使用SpringBoot可以不用或者只需要很少的Spring配置就可以让企业项目快... 目录SpringBoot基础 – 框架介绍1.SpringBoot介绍1.1 概述1.2 核心功能2

mysql递归查询语法WITH RECURSIVE的使用

《mysql递归查询语法WITHRECURSIVE的使用》本文主要介绍了mysql递归查询语法WITHRECURSIVE的使用,WITHRECURSIVE用于执行递归查询,特别适合处理层级结构或递归... 目录基本语法结构:关键部分解析:递归查询的工作流程:示例:员工与经理的层级关系解释:示例:树形结构的数

Java使用Stream流的Lambda语法进行List转Map的操作方式

《Java使用Stream流的Lambda语法进行List转Map的操作方式》:本文主要介绍Java使用Stream流的Lambda语法进行List转Map的操作方式,具有很好的参考价值,希望对大... 目录背景Stream流的Lambda语法应用实例1、定义要操作的UserDto2、ListChina编程转成M

Spring框架中@Lazy延迟加载原理和使用详解

《Spring框架中@Lazy延迟加载原理和使用详解》:本文主要介绍Spring框架中@Lazy延迟加载原理和使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、@Lazy延迟加载原理1.延迟加载原理1.1 @Lazy三种配置方法1.2 @Component

使用easy connect之后,maven无法使用,原来需要配置-Djava.net.preferIPv4Stack=true问题

《使用easyconnect之后,maven无法使用,原来需要配置-Djava.net.preferIPv4Stack=true问题》:本文主要介绍使用easyconnect之后,maven无法... 目录使用easGWowCy connect之后,maven无法使用,原来需要配置-DJava.net.pr

Python正则表达式语法及re模块中的常用函数详解

《Python正则表达式语法及re模块中的常用函数详解》这篇文章主要给大家介绍了关于Python正则表达式语法及re模块中常用函数的相关资料,正则表达式是一种强大的字符串处理工具,可以用于匹配、切分、... 目录概念、作用和步骤语法re模块中的常用函数总结 概念、作用和步骤概念: 本身也是一个字符串,其中

Mysql用户授权(GRANT)语法及示例解读

《Mysql用户授权(GRANT)语法及示例解读》:本文主要介绍Mysql用户授权(GRANT)语法及示例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mysql用户授权(GRANT)语法授予用户权限语法GRANT语句中的<权限类型>的使用WITH GRANT

HTML5表格语法格式详解

《HTML5表格语法格式详解》在HTML语法中,表格主要通过table、tr和td3个标签构成,本文通过实例代码讲解HTML5表格语法格式,感兴趣的朋友一起看看吧... 目录一、表格1.表格语法格式2.表格属性 3.例子二、不规则表格1.跨行2.跨列3.例子一、表格在html语法中,表格主要通过< tab