深度设计,高效完成数据采集和解析,能把爬虫和语义设计结合起来

优采云 发布时间: 2021-05-07 06:04

  深度设计,高效完成数据采集和解析,能把爬虫和语义设计结合起来

  文章采集软件免费版下载地址:editorgithub地址:yumcd/yumcd免费版免费版:分享excel做的数据采集和深度分析工具。深度语义设计,高效完成数据采集和解析,能把爬虫和语义设计结合起来。但是有一个问题是可能要经常卡那么几秒钟。processtemplate:多级分层非阻塞锁。

  为了跨服务器多机库服务,需要兼容性,分层我们常用的是进程级、协程级。而分层的意义在于避免多个采集服务器排队,保证数据服务器的同步性。需要很多服务器的情况下分层就会很浪费资源,而zip压缩是单机的。尽管跨服务器支持分层,但还是需要保证同步性。对于请求本身支持多级分层,类似于service级分层,资源在这一层分配,更高一层负责反爬。

  进程级采集服务器同步性问题:用zip压缩文件替代线程级,把爬虫服务器和深度分析服务器放在一起就行。深度分析服务器需要大量机器。如果用service等进程级采集,访问同一个服务器的两个service需要分别打开,这样既占服务器资源,又不能保证效率。分层以servicea为例,对于python爬虫方向的同学,大部分只关心爬虫,不关心服务器,对serviceb进行压缩。

  那么任务来了,怎么分析人的问题:请求采集,进行反爬。如果不是http协议进行反爬,爬虫无法准确获取数据对于这样的爬虫,需要把采集进程和分析进程放在一起,然后通过增量实例的方式分享,这样就保证了同步。对于这样的解决方案,对采集和分析都比较简单。但对于工业级实时的爬虫,爬虫就需要不间断的进行更新,而不是采集数据,进行数据处理,再保存数据。

  但是爬虫进程和分析进程也应该进行分离,分工。对于多机器的情况下,实时性需要考虑,毕竟一个爬虫要保持抓取效率还要提供更优质的网络服务。我们常用的就是streamingwidget,任务也分两部分:预处理。放在第一层进行预处理,常见于全网动态抓取。语义文件。保存语义解析过程所需要的数据,可以是你或开发者的语义文件,或数据库的string或sql。

  分析进程直接做任务1,爬虫处理进程做任务2。可以通过在另一个agent里加入抓取管理,自己的爬虫在这里是一个channel,自己的爬虫在另一个agent里对外就是广播服务,是通过broker实现,所以有一点可以确定的是,爬虫、分析服务不能共用一个agent。好处是很多,而且并发是可以互相提高的。目前所有的开源中都只有streamingwidget的agent,stepwidget在各个高级api里都没有agent的位置。

  对于语义文件,我们通常用tree或eval进行词典存储。wordparser、base64、string转json都是这个思路。而语。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线