今天听到有人问:Python为什么叫爬虫?我的脑袋里第一反应不是答案,而是为什么有人会问这个问题,我想大家对Python的概念有点模糊,将Python与爬虫混淆,所以今天我向大家解释一下。
什么是Python?Python是什么?
如果你在英文词典里边查Python,他会给出你Python是大蟒蛇的释义,这样读:英[ˈpaɪθən]、美[ˈpaɪθɑ:n],Python是著名的"龟叔”Guido
van
Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言。Python是一种计算机程序设计语言。是一种动态的、面向对象的脚本语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的、大型项目的开发。
Python是一种解释型脚本语言,可以应用于以下领域:
1、Web 和 Internet开发
2、科学计算和统计
3、教育
4、桌面界面开发
5、软件开发
6、后端开发
什么是爬虫?什么是网络爬虫?
网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。
随着网络的迅速发展,万维网成为大量信息的载体,如何有效地提取并利用这些信息成为一个巨大的挑战。
搜索引擎(Search
Engine),例如传统的通用搜索引擎AltaVista,Yahoo!和Google等,作为一个辅助人们检索信息的工具成为用户访问万维网的入口和指南。但是,这些通用性搜索引擎也存在着一定的局限性,如:
(1)不同领域、不同背景的用户往往具有不同的检索目的和需求,通用搜索引擎所返回的结果包含大量用户不关心的网页。
(2)通用搜索引擎的目标是尽可能大的网络覆盖率,有限的搜索引擎服务器资源与无限的网络数据资源之间的矛盾将进一步加深。
(3)万维网数据形式的丰富和网络技术的不断发展,图片、数据库、音频、视频多媒体等不同数据大量出现,通用搜索引擎往往对这些信息含量密集且具有一定结构的数据无能为力,不能很好地发现和获取。
(4)通用搜索引擎大多提供基于关键字的检索,难以支持根据语义信息提出的查询。
为了解决上述问题,定向抓取相关网页资源的聚焦爬虫应运而生。聚焦爬虫是一个自动下载网页的程序,它根据既定的抓取目标,有选择的访问万维网上的网页与相关的链接,获取所需要的信息。与通用爬虫(general
purpose web crawler)不同,聚焦爬虫并不追求大的覆盖,而将目标定为抓取与某一特定主题内容相关的网页,为面向主题的用户查询准备数据资源。
Python与爬虫有什么关系?
爬虫一般是指网络资源的抓取,因为python的脚本特性,python易于配置,对字符的处理也非常灵活,加上python有丰富的网络抓取模块,所以两者经常联系在一起。
简单的用python自己的urllib库也可以;用python写一个搜索引擎,而搜索引擎就是一个复杂的爬虫。从这里你就了解了什么是Python爬虫,是基于Python编程而创造出来的一种网络资源的抓取方式,Python并不是爬虫。
Python为什么适合些爬虫?
1)抓取网页本身的接口
相比与其他静态编程语言,如java,c#,C++,python抓取网页文档的接口更简洁;相比其他动态脚本语言,如perl,shell,python的urllib2包提供了较为完整的访问网页文档的API。(当然ruby也是很好的选择)
此外,抓取网页有时候需要模拟浏览器的行为,很多网站对于生硬的爬虫抓取都是封杀的。这是我们需要模拟user
agent的行为构造合适的请求,譬如模拟用户登陆、模拟session/cookie的存储和设置。在python里都有非常优秀的第三方包帮你搞定,如Requests,mechanize
2)网页抓取后的处理
抓取的网页通常需要处理,比如过滤html标签,提取文本等。python的beautifulsoap提供了简洁的文档处理功能,能用极短的代码完成大部分文档的处理。
其实以上功能很多语言和工具都能做,但是用python能够干得最快,最干净。Life is short, u need python.
爬虫的工作原理是什么?
1.首先选取一部分精心挑选的种子URL;
2.将这些URL放入待抓取URL队列;
3.从待抓取URL队列中取出待抓取在URL,解析DNS,并且得到主机的ip,并将URL对应的网页下载下来,存储进已下载网页库中。此外,将这些URL放进已抓取URL队列。
4.分析已抓取URL队列中的URL,分析其中的其他URL,并且将URL放入待抓取URL队列,从而进入下一个循环。
Python除了可以用做爬虫之外还可以做什么?
1、web开发python拥有非常完善的与web服务器进行交互的库,以及大量的免费的前端网页模板。更具优势的是,有非常优秀且成熟的Django
Web框架,功能一应俱全。
2、linux系统运维事实上,在早期都是通过shell脚本来去实现自动化运维,但是由于shell脚本本身呢可编程的能力偏弱,一些需要实现的功能的库也很少,大部分都需要自己从头写起,然而pyhon作为"胶水语言”可以很方便的和其他由于集成起来,对各类工具进行方便发二次开发,形成一套自己的运维管理系统。
3、游戏开发python在游戏开发方面可能不及Lua 或者是
C++,但是由于python脚本化的优点,类似于游戏剧本、游戏玩法逻辑等这种非常灵活的设计上,我们呢修改起来十分方便。当然了,如果开发一款小的游戏程序,python还是很具有优势的,比较出名的就是pygame了,或许是我们自娱自乐的一个福音啦。
4、桌面软件在window系统桌面开发领域,相信C++
MFC应该是用的比较广的了,python可以实现对C++的无缝对接,并且同时支持Qt和GTK。
5、数据处理python作为一门工程性语言,对于数据处理的类库是相当丰富的,比如有高性能的科学计算类库NumPy和SciPy。
6、人工智能事实上,真正的人工智能的底层语言是C/C++,因为真正的计算全在于C/C++,而python仅仅是调用AI的接口然后去实现一些逻辑而已。但是为什么说人工智能首先python呢?这个其实是由于python作为"胶水语言”的特质才会显的出类拔萃,主要使用python是因为CPython和底层原因的融合使得开发起来更加方便。
当然python还有其他的应用场景,比如说云计算等。
感谢您的阅读,以上就是为大家分享Python为什么叫爬虫、Python与爬虫有什么关系的相关论述,你理解了吗?你可以叫Python爬虫,但是你不可以说Python就是爬虫,记住了吗?