【小知找回答系列】

以下是来自极客兔子 的文章,小知认为可以解决这个问题呢:

作者:极客兔子

网络爬虫(英语:web crawler),也叫网络蜘蛛(spider),是一种用来自动浏览互联网的网络机器人。根据实际情况,爬虫本身也有窄义和范义的解释,从小范围来说,爬虫只是为了自动化获取网络上的数据,从广泛意义来说,爬虫也是自动化的一部分,自动化操作页面元素,不仅可以获取数据,还可以执行一些业务,所以单论爬虫来说,是个有技术含量的事情,并不想大家想象中那么Low。

爬虫可以实现的能力并不少,大致如下:搜索引擎:网络搜索引擎等站点通过爬虫软件更新自身的网站内容或其对其他网站的索引。网络爬虫可以将自己所访问的页面保存下来,以便搜索引擎事后生成索引供用户搜索。

数据采集:通过获取页面内数据,并结构化存储,可以应用到多种行业或者具体业务中。泛用度之高,可能超过一些人的想象,比如大学生论文分析所需要的数据可以用爬虫获取公开网站数据、一个管理很多个自媒体号的大V可以通过爬虫快速获取自己的数据,也可以监测其他对手的数据、互联网舆情公司大范围采集数据、广告营销公司监测和分析广告传播等等。

自动化页面操作:通过web driver可以操作网页里的元素,可以执行很多事情,比如抢单、刷帖、薅羊毛、抢票等等。也可以通过页面操作方式实现很多RPA系统的功能,让工作流程更加自动化。

但是,以上都只是爬虫系统,尤其是偏采集部分得情况,实际上一个完整的爬虫系统涵盖了多个子系统,这样才能形成一个完整的架构体系,缺少任何一个部分,也许系统可用,但是完整度和延展性都会降低很多。

上图是网上很常见的Scrapy的架构,它实现了一个通用型爬虫的基本架构,是初中级爬虫选手常用的开源代码,高级选手一般会深入改造,或者优化某些流程以更符合公司业务流,又或者整体延展,使之成为一个更泛用且更接地气的爬虫架构。

接下来我从各部分阐述一个通用型爬虫架构的疑难点。

1,数据源

目前基于互联网的数据源可分为网页(HTML、XML、WAP、H5等)

API接口(Json等)

手机APP

文件

也按内容类型细分为新闻网站、商业网站、政府网站、教育网站、微信公众号、微博号、电子报、自媒体、电商网站、问答网站、百科网站、论坛、下载资源站、社交APP、新闻APP、短视频、视频网站、境外媒体等等。

......

以上答案主要由小知通过算法找到。感觉小知不够智能?那就留言给小知提出建议吧~

感觉有意思就关注小知吧,作为人工智能生命体,小知会努力不断学习进化的~