.net core开发工具_github 爬虫

.net core开发工具_github 爬虫没有爬虫就没有互联网!爬虫的意义在于采集大批量数据,然后基于此进行加工/分析,做更有意义的事情。谷歌,百度,今日头条,天眼查都离不开爬虫。去开源中国和Github查询C#的爬虫项目,仅有…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

没有爬虫就没有互联网!

爬虫的意义在于采集大批量数据,然后基于此进行加工/分析,做更有意义的事情。谷歌,百度,今日头条,天眼查都离不开爬虫。

去开源中国和Github查询C#的爬虫项目,仅有几个非常简单或是几年没有更新的项目。

而单纯性能上.NET对比JAVA,PYTHON并没有处于弱势,反而有开发上的优势(得益于世界上最强大的IDE)。爬虫性能瓶颈大多是在并发下载(网速)、IP池,那么为什么.NET没有一个强大的爬虫框架呢?

说真的我不知道,可能爬虫框架核心上比较简单,也可能.NET的开发人员没有别的语言的开发人员勤奋,或是.NET的开源氛围没有别的语言高。

所以,今天推荐一个.NET 爬虫的开源项目:DotnetSpider

开源项目地址:
https://github.com/dotnetcore/DotnetSpider

.net core开发工具_github 爬虫

免责申明:本框架如同 Python 下著名的 Scrapy 一样只是为了帮助开发人员简化开发流程、提高开发效率,请勿使用此框架做任何违法国家法律的事情。使用者所做任何事情也与本框架的作者无关。

设计图

.net core开发工具_github 爬虫

框架设计

参考的webmagic,所以整体架构上没有什么大的变化,设计图如下(图片是直接从webmagic上拿的)

.net core开发工具_github 爬虫

  • Scheduler:负责URL的调度、去重,可以实现如Queue, PriorityQueueScheduler, RedisScheduler(可用于分布式)等等

  • Downloader: 负责下载HTML,可以实现如HttpDownloader, 浏览器的Downloader(WebDriver), FiddlerDownloader,本地文件Downloader等等

  • PageProcesser: 负责HTML解析、目标URL的选择

  • Pipeline: 负责数据的存储, 已实现文件存储, MySql存储, MySqlFile存储(脚本),MSSQL存储,MongoDb存储, 更多存储期待您的贡献

优点

  • 可以使用Json定义爬虫

  • 可以使用实体类+Attrbiute定义爬虫

  • 自动创建数据库、数据表

  • 支持 .NET CORE,可以跨平台

  • 支持ADSL拨号换IP:如果所有爬虫统一部署, 可以实现单台机器同时运行多个任务拨号互不影响、或者一个路由下面多个电脑下多个任务拨号互不影响

  • 支持自定义代理池

  • 有管理平台

如果你也有好的开源项目,欢迎推荐!

微信号联系:westbrook12000(ps:加好友请备注“开源”)

.net core开发工具_github 爬虫

.net core开发工具_github 爬虫

回复 【小程序】获取15套小程序源码【学习+实战+赚钱】

回复 【关闭】学关闭微信朋友圈广告

回复 【实战】获取20套实战源码

回复 【福利】获取最新微信支付有奖励

回复 【被删】学查看你哪个好友删除了你巧

回复 【访客】学微信查看朋友圈访客记录

回复 【python】学微获取全套0基础Python知识手册

.net core开发工具_github 爬虫

还需要Pandownload?阿里云网盘来了(附注册教程)

.net core开发工具_github 爬虫

副业刚需,个人开发者如何通过小程序变现?已经有朋友变现月入4k了!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/193670.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 一阶惯性滤波特点_一阶惯性环节仿真

    一阶惯性滤波特点_一阶惯性环节仿真由文章(二)可知,二次平均法改善了一次平均法滤除低频干扰时超调的影响,但仍然未能完全滤除低频干扰。因此,通过改变反馈控制系统参数结合平均法是一个不错的选择,仿真如图:通过改变比例系数,可以实现一定的滤波效果,此方法是通过降低响应参数的方式实现一级滤波,通过平均法实现二级滤波,仿真结果如下图:文章《一阶惯性传感器的快速跟踪性能实现》中,最终传递函数为:本例中,传递函数为启动性能与文章《一阶惯性传感器的快速跟踪性能实现》中接近,且较大地滤除了高频、低频干扰可见,该控制

    2022年10月4日
    0
  • Mybatis二级缓存_java一级缓存二级缓存

    Mybatis二级缓存_java一级缓存二级缓存在mybatis中,如果要使用二级缓存,就必须使javabean类实现Serializable(序列号)接口未实现序列化接口报错:关于为什么要实现序列化,我浏览了这个兄弟的文章为什么pojo类要实现序列化

    2022年9月14日
    0
  • ssh无法正常连接

    ssh无法正常连接

    2021年9月3日
    52
  • X86_64平台上利用qemu安装aarch64架构的虚拟机「建议收藏」

    X86_64平台上利用qemu安装aarch64架构的虚拟机「建议收藏」前一段时间摸索了以下在x86平台上安装arm架构(包括aarch64和armhf)的虚拟机,中间遇到了不少问题。把经验总结下来希望能帮到大家。1.安装qemu-system-aarch642.UEFI固件下载3.操作系统下载4.创建虚拟硬盘5.虚拟机安装6.虚拟机启动6.利用virt-manager启动虚拟机7.参考链接1.安装qemu-system…

    2022年10月17日
    0
  • 重定向和转发的区别及应用_重定向是什么意思

    重定向和转发的区别及应用_重定向是什么意思请求转发:客户首先发送一个请求到服务器端,服务器端发现匹配的servlet,并指定它去执行,当这个servlet执行完之后,它要调用getRequestDispacther()方法,把请求转发给指定的student_list.jsp,整个流程都是在服务器端完成的,而且是在同一个请求里面完成的,因此servlet和jsp共享的是同一个request,在servlet里面放的所有东西,在stude…

    2022年9月8日
    0
  • 010 docker搭建swarm集群

    010 docker搭建swarm集群

    2021年5月26日
    123

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号