Python爬虫和数据分析需要哪些知识储备,自学顺序是怎样的?
感谢您的阅读,如果喜欢,麻烦点个赞支持一下吧~
首先从一个IT从业人员的角度来阐述Python爬虫和数据分析的位置。
Python爬虫严格的说并非是一个研究方向,在很多企业中也不会针对性的设定“Python爬虫工程师”这个岗位。爬虫,更加偏向于在大数据技术中的一个辅助工具,例如,你是做NLP的,你需要很多文本数据,那么可以用爬虫去爬取很多新闻媒体网站的文字信息。假如,你是做CV的,你可以利用爬虫技术去一些图库、网站爬取一些图片数据。
诸如此类,可以看出,爬虫更加像一款工具,如果从事大数据相关的技术工具,这项技术默认是需要会的。当然,“会”也有深浅之分。
前面说了很多题外话,下面就来解释一下Python爬虫和数据分析需要哪些知识储备?自学顺序是怎么样的?
知识储备
Python爬虫和数据分析,可以具体的分为如下几个阶段,
编程语言
爬虫
前端
数据分析
首先是变成语言阶段,题目中已经标明了 ,既然是Python爬虫和数据分析,那么语言就已经被限定了,需要具备Python这门编程语言的基础。
其次是爬虫,它更加像一个“大杂烩”,所需要的知识相对零散,但是,在Python中不管多么复杂的事情,都架不住强大的第三方库。所以,爬虫方面的知识储备更多的是偏向于第三方库的使用,例如,
bs4
requests
另外,在爬虫过程中较为常用的工具就是正则表达式,这是爬虫无法避开的。
我们爬虫一般是针对某个网站进行爬取,因此,需要对前端的一些知识进行了解。当然,这里不需要你像一个专业的前端开发工程师那样,要深入了解js、php这些。但是,至少要对html、css有一定的认识。
最后,就是数据分析方面。数据分析首先要知道数据库的使用。常用的数据库无外乎是关系型和非关系型数据库,但是,无论是哪一种,我们在接触数据的过程中都会涉及到增删改查,因此,要对数据库或者hive这些有一定的认识。
获取到数据之后,如何把它发挥到最大价值?这就需要看具体应用场景。例如,你需要对它进行预测,那么,你还需要具备一些机器学习的知识。
学习顺序
前面已经把需要学习的知识囊括进去了,其实,已经按照需要的顺序进行排列了,在这里,再进行总结归类一下。
Python
正则表达式
bs4
requests
html和css
数据库
机器学习
很高兴回答这个问题,python做爬虫和做数据分析要分开来看。
既然是用python来做,语言基础是二者都需要的,如果你本身就了解python的基本语法,这一步就可以略去,否则你要补充python基础语法知识,如果从来都没有接触过编程语言,要从头学起还得花点时间,如果学习过java、c之类的其他编程语言,花一天时间把python基础过一遍就好了。
爬虫
1.前端基础知识
做爬虫,你的研究对象就是这些网页,首先就要了解这些网页的工作原理,前端基础如html+css+js这些,不一定要会做,但是要能看懂,要会使用浏览器分析元素,这里推荐一款chrome的小插件xpath helper,可以帮你快速解决元素提取。
如果你爬取的网站需要登录,还要了解cookie会话保持的知识。
在具体做爬虫的时候,如果是简单的、不需要太多重复操作的网站,可以用beautiful soup,一些request请求就搞定了,还是建议学习scrapy框架,方便规范的爬取网站
数据分析
数据分析实在数据提取基础上做的,其实就是一些数据运算,首先还是要掌握一些统计学基础了,数据采集好之后,确定要分析的方向,数据计算可以使用padas数据分析库,这个库非常强大,基本满足你的多数需求,数据分析也离不开可视化工具,可以用pyecharts做数据图表,帮助你更好的分析数据。
我最近正在自己练习爬虫,参考的书籍是《Python金融大数据挖掘与分析全流程详解》,在此谈谈自己的一些心得。
爬虫是一种工具
我学习爬虫的目的很简单,就是想能够自动、全面地获取到自己持仓股的财经信息,并且能够基于这些信息进行后续的分词、建模并提供辅助决策数据。
对于爬虫而言,要想用起来,我个人认为有下面几点需要掌握:
1 网页结构知识:这关系到我们能否从目标网页上获取到有用的信息,如果对所要爬取的网页结构有所了解,很难获取到符合需求的数据。
2 数据库知识:这关系到我们爬取了信息后是否能够合理保存,虽然可以保存为本地文件,但是对于后续的数据清洗、数据建模等环节来说,直接读取数据库更为便捷。
掌握了以上两点,基本上爬虫用起来完全是没有问题的。
数据分析是一种技能
对于数据分析而言,Python又只是一种能够提高数据处理、数据建模等环节效率的工具,有的人喜欢用它,也有的人喜欢用R,此外,SAS、SPSS、Excel等工具的受众也很多,特别是金融领域很多专业期刊只承认SAS的结果。
数据分析本质上是一套发现问题、拆解问题、定位问题、决策建模、测试执行、效果评估、复盘迭代的一套流程。
不同学科的人进行数据分析所依赖的知识有很大差异,只能相对概括地说下面的几点有必要掌握:
1 判断问题的能力
这种能力对于文理科的人来说真的有很大差异,比如理科的可以根据阈值等来界定异常,但是文科的同学可能只需要几个简单的问答就能分辨。当然如果按照数据分析中包含的数据二字来讨论,肯定是有根据已有数据估计正常水平的能力。
2 维度拆解的能力
其实,维度拆解还有个看着很高端的名字—钻取,本质就是把涉及到问题点的维度一层层下钻,直到能够发现问题出现的点。
3 数据建模的能力
这个其实没有必要追求太过高深的算法模型啥的,合适的就是最好的。
总结
以上就是本人的一些浅薄见解,欢迎交流和评论。