爬虫基础知识
Posted 征途黯然.
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了爬虫基础知识相关的知识,希望对你有一定的参考价值。
【零基础入门Python爬虫】第1章 爬虫基础知识
爬虫的概念
网络爬虫又名网络蜘蛛、网络蚂蚁、网络机器人等,顾名思义,网络爬虫可理解为在网络上的爬虫,按照定的规则爬取有用信息并收录进数据库,该规则即网络爬虫算法。
在进行数据分析或数据挖掘时,通过网络爬虫可以根据不同需求有针对性地采集、筛选数据源。
网络爬虫在本质上就是模拟用户在浏览器上操作,发送请求,接收响应,然后分析并保存数据,只不过这个过程通过代码实现了大量的自动化操作。
爬虫是否违法
在爬虫里,所爬的数据是指互联网上公开的并且可以访问到的网页信息,而不是网站的后台信息(没有权限访问),更不是用户注册的信息(非公开的)。
所以说,我们爬到的一切数据都是公开的。凭我们个人人工去浏览网页,假设一天只能记录1000条网页里面的信息,而爬虫只是加速了这个过程,使我们一天可以记录1千万条网页信息。从信息的公开性角度看,理论上爬虫是完全合法的。
但我们仍然要注意一些边界行为:
1) 如果试图爬取非公开数据,比如用户注册信息、网站后台信息等等,必然是违法的;
2) 对于爬取到的公开数据,如果作为商业用途,如果别人追究的话,那也是存在违法风险的。
爬虫需要掌握的技术列表
1、http请求知识(网页请求原理)
2.1、html技术(网页的构成)
2.2、css技术(网页的构成)
3.1、Pycharm的安装(爬取网页)
3.2、Python基础(爬取网页)
3.3、Python拓展库(爬取网页)
4.1、Python拓展库(提取数据)
4.2、浏览器开发者模式(提取数据)
4.3、css选择器(提取数据)
4.4、正则表达式(提取数据)
5、Python拓展库(保存数据)
学习爬虫需要掌握较杂的知识,但是并不需要掌握、精通,上述技术只需要了解就够了。后续实战部分,笔者将公步出所有代码,基于这些代码,读者只需要做一些微小的改动,就能爬取大部分自己的目标网页。了解上述知识,方便读者修改代码,这是必要的。
爬虫原理
爬虫的流程如图1所示。
第一步,发送请求:我们会有一个目标网址(网址我们称为url),它的形式一般是https://…… 或者 http://……,然后我们使用Python代码,通过一定的配置去请求这个url,成功之后,我们会得到返回的数据。
第二步,获取数据:不同的url返回的数据格式是不一样的。有HTML(网页)、JSON(一种数据存储格式)、XML(一种数据存储格式)、PDF、DOC、JPG、PNG等等。笔者会着重讲解HTML和JSON格式数据,XML近年来用的已经很少了,其他格式都是一些媒体文件,直接下载即可。
第三步,提取数据:对于HTML、JSON格式的数据,我们需要一定的手段去提取我们想要的数据。所以,我们需要了解网页的构成(HTML+CSS),需要了解JSON格式。知道了它们的构成之后,我们需要学习工具去解析这些数据。所以要学习Python拓展库,这是基础;学习浏览器开发者模式、css选择器、正则表达式,这可以帮助我们快速提取数据。
第四步,保存数据:在较为专业的爬虫中,技术人员把提取到的数据保存在数据库中。对于爬虫轻度使用者,也就是本专栏的读者们,我建议使用csv、excel来保存数据,这样简单、也方便随时查看数据。包括笔者也都是一直使用excel在保存数据。
为什么用Python做爬虫
· 优秀的浏览器模拟库。爬取网页时需要模拟浏览器的行为,很多网站对于生硬的爬虫爬取都是封杀的。这时就需要模拟User Agent的行为构造合适的请求,例如模拟用户登录、模拟Session/Cookie的存储和设置。在Python中有非常优秀的第三方包支持,如Requests。
· 优秀的网页处理库。爬取的网页通常需要处理,如过滤HTML标签、提取文本等。Python的Beatiful Soup提供了简洁的文档处理功能,能用极短的代码完成大部分文档的处理。其实以上功能很多语言和工具都能完成,但是用Pyhon能够处理最快、最干净。
· 上手快、学习简单。Python是目前对非专业人员最友好的编程语言。网络上Python的教学资源很多,便于大家学习,出现问题也很容易找到相关资料。Python语言本身也一直在发展,目前的稳定版本是Python3,它与Python 2有着较大的区别。笔者使用Python 3作为演示版本。
以上是关于爬虫基础知识的主要内容,如果未能解决你的问题,请参考以下文章