专栏名称: OSC开源社区
OSChina 开源中国 官方微信账号
目录
相关文章推荐
程序员小灰  ·  我的项目,彻底爆了! ·  3 天前  
OSC开源社区  ·  国行版“苹果牌AI”有望使用腾讯、字节大模型 ·  5 天前  
程序员的那些事  ·  用 AI ... ·  4 天前  
OSC开源社区  ·  小米有格局——官方正式开源「Home ... ·  1 周前  
OSC开源社区  ·  操作系统能知道自己是在虚拟机中运行的吗? ·  6 天前  
51好读  ›  专栏  ›  OSC开源社区

那些优秀的网络爬虫工具介绍,最后亮了!| 码云周刊第 16 期

OSC开源社区  · 公众号  · 程序员  · 2017-04-17 08:31

正文


摘要: 每周为您推送最有价值的开源技术内参!


技术干货

1、SpringMVC 执行流程及源码解析

2、使用 Vue2 和 Yii2 进行前后端分离开发

3、 SSM (十一) 基于 dubbo 的分布式架构

4、五大理由从 Python 转到 Go 语言

5、软件的复杂性: 命名的艺术


技术分享


1、SpringMVC 执行流程及源码解析

在SpringMVC中主要是围绕着DispatcherServlet来设计,可以把它当做指挥中心。这里先说明一下SpringMVC文档给出的执行流程,然后是我们稍微具体的执行流程,最后是流程大致的源码跟踪。


2、使用 Vue2 和 Yii2 进行前后端分离开发

本文介绍使用Vue2单页面程序作为前台,以Yii2搭建后台提供API,进行前后端分离开发的入门知识。本文适合Vue2,Yii2爱好者观看。预计花费时间30分钟,跟随教程操作。


3、 SSM (十一) 基于 dubbo 的分布式架构

现在越来越多的互联网公司还是将自己公司的项目进行服务化,这确实是今后项目开发的一个趋势,就这个点再凭借之前的SSM项目来让第一次接触的同学能快速上手。


独家译文


4、五大理由从 Python 转到 Go 语言

 Python 是非常强大的,特别是 Python3 有了异步功能,但是 GO 将完全取代它在大企业中的存在…


5、软件的复杂性: 命名的艺术

想把一个东西写好很难。为什么呢?因为只要写好了,才会有很好的阅读体验。我们往往关注了前者而忽略了后者。我们忘记了代码只写一次,但要读很多次。


码云推荐

1、强力 Java 爬虫

2、便于二次开发的爬虫框架 

3、分布式爬虫系统

4、Go语言实现的高性能爬虫

5、Node.js 的爬虫系统 

6、人脸识别爬虫

7、全球最大成人网站PornHub爬虫


1、强力 Java 爬虫  Spiderman

项目简介:Spiderman 是一个Java开源Web数据抽取工具。它能够收集指定的Web页面并从这些页面中提取有用的数据。


Spiderman主要是运用了像XPath,正则表达式等这些技术来实数据抽取。


主要特点


    - 微内核+插件式架构、灵活、可扩展性强

    - 无需编写程序代码即可完成数据抽取

    - 多线程保证性能


2、便于二次开发的爬虫框架  webmagic 


项目简介:webmagic 是一个无须配置、便于二次开发的爬虫框架,它提供简单灵活的API,只需少量代码即可实现一个爬虫。


主要特点


    - 简单的核心,灵活性高。

    - 用于HTML提取的简单API。

    - 使用POJO进行注释来自定义抓取工具,无需配置。

    - 多线程和分发支持。

    - 易于集成


3、分布式爬虫系统 YayCrawler


项目简介:分布式爬虫系统,简单使用,高级配置。可扩展,减轻开发量,能docker化,适应各种急切需求核心框架:WebMagic, Spring Boot ,MongoDB, ActiveMQ ,Spring + Quartz,Spring Jpa , Druid,Redis, Ehcache ,SLF4J、Log4j2, Bootstrap + Jquery 等。


4、Go语言实现的高性能爬虫  DenseSpider

项目简介:Go语言实现的高性能爬虫,基于go_spider开发。实现了单机并发采集,深度遍历,自定义深度层级等特性。


基本结构


    - Spider模块(主控)

    - Downloader模块(下载器)

    - PageProcesser模块(页面分析)

    - History(Url采集历史记录)

    - Scheduler模块(任务队列)

    - Pipeline模块(结果输出)


主要Feature


    - 基于Go语言的并发采集

    - 页面下载、分析、持久化模块化,可自定义扩展

    - 采集日志记录(Mongodb支持)

    - 页面数据自定义存储(Mysql、Mongodb)

    - 深度遍历,同时可自定义深度层次

    - Xpath解析


5、Node.js 的爬虫系统  neocrawler

项目简介:NEOCrawler(中文名:牛咖),是nodejs、redis、phantomjs实现的爬虫系统。代码完全开源,适合用于垂直领域的数据采集和爬虫二次开发。


特点


    - 支持web界面方式的摘取规则配置(css selector & regex);

    - 包含无界面的浏览器引擎(phantomjs),支持js产生内容的抓取;

    - 用http代理路由的方式防止抓取并发量过大的情况下被对方屏蔽;

    - nodejs none-block 异步环境下的抓取性能比较高;

    - 中央调度器负责网址的调度(同一时间片内一定数量的抓取任务中根据网站的权重来决定派发任务量;

    - 支持多种抓取实例并存,定制摘取引擎和存储方式。


整体架构:



6、人脸识别爬虫  FaceSpider


项目简介:使用openCV结合网络爬虫编写的人脸识别爬虫,基于opencv246编写能够根据设置的线程数及深度针对指定目标URL的图片进行爬取。


7、全球最大成人网站PornHub爬虫 PornHubBot

项目简介:全球最大成人网站PornHub爬虫 (Scrapy、MongoDB) 一天500w的数据。该项目旨在研究Scrapy Spider框架和MongoDB数据库,不能用于商业或其他个人意图。:)





推荐阅读

企业必备的开源商业智能分析工具和报表工具 Top7

防止网络入侵,这些防火墙工具你一定要知道!

软件的复杂性:命名的艺术

2017 年移动应用开发十大趋势

DB-Engines 发布 4 月份全球数据库排名,MySQL 跌幅最大

五大理由从 Python 转到 Go 语言

点击“阅读原文”查看更多精彩内容