Giter Site home page Giter Site logo

Comments (33)

gsh199449 avatar gsh199449 commented on August 15, 2024 35

我使用Webmagic内核写了一个爬虫的网页配置和爬虫管理界面,还包括数据存储与搜索
https://github.com/gsh199449/spider

from webmagic.

code4craft avatar code4craft commented on August 15, 2024 5

更新:

Part1和Part3先搁置,先从Part2开始!

后台包括创建爬虫和管理爬虫/机器(worker)两部分,设计图如下:

创建爬虫

这里可以配置爬虫的基本信息。

爬虫的抽取逻辑PageProcessor采用模板化的**,编写一个Java文件之后,提供一些属性注入点,程序会自动根据注入点,产生表单。

create spider

管理爬虫

这里可以查看爬虫运行状态,并对爬虫进行管理。

worker是正在运行的机器。

爬虫状态包括总共url,下载页面数,失败数等。失败数可以点击查看详细结果及异常。

spider manage

from webmagic.

code4craft avatar code4craft commented on August 15, 2024 1

更新分布式架构:

WebMagic之前具有基本的分布式功能,可以将一个Spider部署到多台机器上,并通过Redis来管理URL,达到多机合作抓取的目标。

我在WebMagic-Avalon里计划完成一个管理后台,通过这个后台可以新建、管理和监控爬虫,具体的产品形态,见草图http://my.oschina.net/flashsword/blog/202889

这个系统涉及到一个Spider的动态创建和管理的问题。之前WebMagic是一个Java应用内部框架,并不具有动态创建的能力,也没有外部管理的能力。于是,在WebMagic-Avalon里,需要一个新的分布式方案。

总体架构:

WebMagic-distributed-architecture

这个系统共有4个角色:

Scheduler:

Scheduler是WebMagic的基本角色,它对需要抓取的URL进行管理,并进行去重等工作。Scheduler是集中式的,使用Redis来实现Scheduler是比较好的选择。

Spider:

Spider是WebMagic的基本角色,即对某一个站点的爬虫,它包括下载、解析以及持久化的工作。它会从Scheduler中拉到URL来处理,并添加新的URL到Scheduler。Spider是多线程的,单机的多个Spider可能会共用一个线程池。

Worker:

Worker对应一台机器,它包含多个Spider,提供Http方式的API,供外部系统进行控制,从而在本地创建、管理Spider。Worker是无状态的,非常容易水平扩展。

Admin:

Worker对应一台机器,它知道所有Worker的地址,提供Web页面,开发者可以在Admin的页面操作,操作后Admin发送Http请求到Worker来发布任务。

其他技术选型:

1. 容器:

  • Worker和Admin都是war包,可以部署到Web容器中,同时也内置Jetty,支持直接启动。
  • 考虑到维护性问题,Web框架还是使用较为主流的Spring MVC。

2. 存储:

  • 系统内部的信息存储使用Mysql,可能后期会提供一个本地化的数据库如H2,以做到开箱即用。
  • URL管理基于Redis,虽然数据规模小的时候,Mysql也能胜任,但是Redis仍然最理想的选择。
  • 抓取结果的存储由用户自定义,默认支持Mysql和文件。

3. 通讯:

  • Admin和Worker直接通过Http API通讯,数据交换格式为JSON。
  • Admin可以直接发布爬虫需求,使用forger在客户端解析配置,并产生新爬虫。

from webmagic.

leoray1990 avatar leoray1990 commented on August 15, 2024

看着很给力,一直也想做类似的工作,不过精力和能力都有限!

from webmagic.

bluesky8318 avatar bluesky8318 commented on August 15, 2024

目前工作中正在考虑这部分内容的开发,希望后续有机会pull request进来

from webmagic.

krisjin avatar krisjin commented on August 15, 2024

爬虫管理页面,创建一个站点,针对这个站点的可以随时启动或停止,针对站点设置规则,根据时间定时抓取页面,会用到定时器吧,quartz 这个可以是一个选择吧。

from webmagic.

donsunsoft avatar donsunsoft commented on August 15, 2024

看起来很强大啊,不知道能不能支持瀑布流的网页抓取。

from webmagic.

zhoushili avatar zhoushili commented on August 15, 2024

设计成这样是不就能用注解方式了,因为注解vlaue 不能拼写动态字符串

from webmagic.

dolonfly avatar dolonfly commented on August 15, 2024

part2有 进展么?不知何时能发出

from webmagic.

warterWu avatar warterWu commented on August 15, 2024

没有看到针对多个任务同时运行的压力控制和集群调度的功能啊

from webmagic.

medusar avatar medusar commented on August 15, 2024

请教一下,您文中那样子的图是怎么画出来的呢

from webmagic.

gujiahong avatar gujiahong commented on August 15, 2024

请教一下,您文中那样子的图是怎么画出来的呢

from webmagic.

zhouhao avatar zhouhao commented on August 15, 2024

@gujiahong @medusar 应该是这个工具吧:https://balsamiq.com/products/mockups/

from webmagic.

91demo avatar 91demo commented on August 15, 2024

我是新手,正好跟进

from webmagic.

jeff-dong avatar jeff-dong commented on August 15, 2024

我可以提供JOB调度部分 :)
https://github.com/jeff-dong/marble

from webmagic.

code4craft avatar code4craft commented on August 15, 2024

@gsh199449 必须赞!

from webmagic.

nvidhub avatar nvidhub commented on August 15, 2024

和您一起学习

from webmagic.

john1533 avatar john1533 commented on August 15, 2024

很不错的项目,希望能加入!

from webmagic.

casolxia avatar casolxia commented on August 15, 2024

不错不错

from webmagic.

garry1861 avatar garry1861 commented on August 15, 2024

我可以一起做,我正在使用这个项目,也在考虑做一个基于这个项目的管理。希望能一起。

from webmagic.

GaoPengTIM avatar GaoPengTIM commented on August 15, 2024

今天老板就让我一个人做一个这样的东西,我正在路上

from webmagic.

system777 avatar system777 commented on August 15, 2024

大牛,还在维护吗?我来自一家大型互联网电商公司,公司有这方面的投入,希望能跟您联系上。
不缺资源,希望能合作。QQ:77720370

from webmagic.

 avatar commented on August 15, 2024

前来观望,祝作者成功

from webmagic.

windmap avatar windmap commented on August 15, 2024

不错的,顶你一下,贡献无穷

from webmagic.

nununull avatar nununull commented on August 15, 2024

前来膜拜大神

from webmagic.

smallCannon avatar smallCannon commented on August 15, 2024

学习

from webmagic.

xiaorendetian avatar xiaorendetian commented on August 15, 2024

进展如何了?

from webmagic.

iamlk avatar iamlk commented on August 15, 2024

太遗憾了,这个项目还是夭折了

from webmagic.

sutra avatar sutra commented on August 15, 2024

太遗憾了,这个项目还是夭折了

关闭这个 issue 的原因应该是因为已经有第三方的实现了,没有必要再做一个重复的:
#43 (comment)

from webmagic.

carl-don-it avatar carl-don-it commented on August 15, 2024

今天老板就让我一个人做一个这样的东西,我正在路上

做得怎么样了,我也有此需求

from webmagic.

banana-boy484 avatar banana-boy484 commented on August 15, 2024

毕业设计准备做一个分布式爬虫+web端管理+小程序展示,前来取经

from webmagic.

eagleli1990 avatar eagleli1990 commented on August 15, 2024

from webmagic.

casolxia avatar casolxia commented on August 15, 2024

from webmagic.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.