编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

我所理解的爬虫(对于爬虫的理解)

wxchong 2024-09-22 16:45:49 开源技术 13 ℃ 0 评论

在这个大数据时代,尤其提出DT时代的兴起,不管是做数据挖掘,还是做新兴的人工智能工作,数据作为不可或缺一部分。

根据数据来源一般可以划分为本身生成数据,商业数据,开源数据。本身产品或工作中生产的数据。例如网站上的评论,ERP软件的物流管理数据,销售数据以及职工的工作数据都是属于这类。另外一种就是商业组织提供的数据,比如百度提供的百度指数,以及数据交易平台上出售的各类数据。再一种常见数据多为公共开源数据,这种数据多为政府或组织中发布的各个领域的数据。例如统计局每年发布的各个行业的经济指标数据,气象局发布天气的气温、湿度等数据。而最为常见的数据就是互联网上发布的,我们不需要权限访问的公开数据。

根据数据的形式有结构化数据,半结构化数据和非结构化数据。结构化数就是表现为二维形式的数据,例如我们关系数据库中的数据,excel中保存的数据。

半结构化数据是指具有一定的结构形式,但又没有如结构化数据这么标准的格式,例如网页中显示的内容,其表示形式是html(超文本标记语言),它是通过不同标签来表示不同的内容,还有xml和jsong格式的文件。

非结构化数据就指没有格式可言,各种文档、图片、视频/音频等都属于非结构化数据。而爬虫涉及到数据主要为半结构化数据。

最近几年,爬虫作为采集数据的一个主要工具,得到迅速发展,尤其是大数据时代的到来。根据数据来源,爬虫主要涉及的数据是开源的数据,即互连网上公开的数据。根据数据格式,爬虫主要采集的是半结构化数据,即网页数据。可见,能够爬取的数据是海量的。

爬虫技术可以理解为程序代替人手动操纵电脑访问,总的来说也就包括网页请求,网页解析,数据保存。爬虫的出现又催生的反爬的技术的诞生,目前反爬的技术大体包括限制IP访问次数,用户权限限制,设置验证码认证,尤其验证码的技术发展的五花八门,12306网站的验证码可谓一个让人吐槽的点,其难度之大,另真人都大跌眼镜,何况爬虫这模拟的假人。不过道高一尺魔高一丈,随着反爬的发展,破解反爬技术也节节攀升,例如模拟登录,代理技术,破解验证码技术等。

为了提高爬虫效率,爬虫技术中催生出许多优秀的爬虫框架,包括scrapy(python,下图为scrapy框架), webmagic(java),Nutch等。其中nutch是为搜索引擎设计的爬虫,支持分布式功能。现在scrapy也发布了scrapy-redis插件,支持分布式爬虫。这些功能从开发速度、和访问速度上都提升了爬虫效率。

爬虫和反爬就如战争中的攻与守,攻方寻找对方的漏洞进行攻击,守方严守关卡,一再提高访问的门槛,恰似一场游戏。所以完成一个网站爬虫的开发,常常让人感到一丝成就感。同样当被被访问者发现而禁止爬取后,被爬取者也许会多一份快意。此时,又需而今迈步从头越,重新继续这种打怪升级游戏。

以上便是我接触爬虫以来的概要理解。接下来想对爬虫的每个知识点做一一梳理,希望对爬虫的知识能够系统化,敬请关注。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表