世界上80%的爬虫是基于Python开发的,学好爬虫技能,可为后续的大数据分析、挖掘、机器学习等提供重要的数据源。
什么是爬虫?
网络爬虫通俗的讲就是通过程序去获取web页面上自己想要的数据,也就是自动抓取数据。
爬虫可以做什么?
你可以用爬虫爬图片,爬取视频等等你想要爬取的数据,只要你能通过浏览器访问的数据都可以通过爬虫获取。
什么是Python?
Python(大蟒蛇)是一门解释型、面向对象、带有动态语义的高级程序设计语言。
Python具有强大而丰富的类库,也经常被别人说是胶水语言,可以跟其它语言写的模块结合在一起。
优点
1.简单:Python是一种代表简单主义思想的语言。
2.易用:Python简单容易上手,因为有简单容易看懂的文档。
3.速度快:运行速度快,因为Python中的标准库和第三方库都是C语言编写的,所以很快。
4.免费、开源:Python是一款FLOSS(自由/源代码软件)之一,使用者可以自由地发布这个软件的拷贝、阅读它的源代码、对它做改动、把它的一部分用于新的自由软件中。
5.高层语言:用Python语言编写程序的时候无需考虑诸如如何管理你的程序使用的内存一类的底层细节。
6.可移植性:由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工作在不同平台上)。
7.解释性:Python语言写的程序不需要编译成二进制代码。你可以直接从源代码运行 程序。在计算机内部,Python解释器把源代码转换成称为字节码的中间形式,然后再把它翻译成计算机使用的机器语言并运行。这使得使用Python更加简单。也使得Python程序更加易于移植。
8.面向对象:Python既支持面向过程的编程也支持面向对象的编程。在“面向过程”的语言中,程序是由过程或仅仅是可重用代码的函数构建起来的。在“面向对象”的语言中,程序是由数据和功能组合而成的对象构建起来的。
9.可扩展性:如果需要一段关键代码运行得更快或者希望某些算法不公开,可以部分程序用C或C++编写,然后在Python程序中使用它们。
10.可嵌入性:可以把Python嵌入C/C++程序,从而向程序用户提供脚本功能。
11.丰富的库:Python标准库确实很庞大。它可以帮助处理各种工作,包括正则表达式、文档生成、单元测试、线程、数据库、网页浏览器、CGI、FTP、电子邮件、XML、XML-RPC、HTML、WAV文件、密码系统、GUI(图形用户界面)、Tk和其他与系统有关的操作。
12.规范的代码:Python采用强制缩进的方式使得代码具有较好可读性。而Python语言写的程序不需要编译成二进制代码。
你是如何开始写python爬虫的?
因为研究生阶段主要的方向是数据挖掘方向,需要从网上获取大量的数据,如果一页一页的手动复制的化,不知道到何年何月了,所以慢慢开始接触到python爬虫,我大概介绍一下自己的学习历程吧:
1.首先要有一定的python基础,环境要熟悉,基本的语法和包也要会使用,至于python基础教程,网上很多,有视频也有pdf的,这个因人而异,我入门主要学习的是《python基础教程》这本书,对应的是python2,这本书写的比较全面,介绍的也比较详细,只要认认真真的跟着书学习,一边练习代码,很快就能熟悉python基础,掌握基本知识和常见包的使用。
2.对网页基本知识也要有一定了解,像html,css,javascript等,没必要精通它们,但是最起码得了解一二,要爬的数据都在网页中,你对网页一点都不了解,这根本就不行,至于这些入门的东西,你可以在网上搜搜,我推荐http://www.w3school.com.cn/,介绍的很全面:
3.然后就是一些爬虫基本包的使用,像urllib,urllib2,requests,bs4等,这些教程,网上都有,官方也有详细的文档说明,你可以试着爬取一些比较简单的网页,像糗百等。
4.在爬取有些网页的过程中,你会发现莫名的程序就中断,连接不上服务器,这就是反爬机制,许多网站都对爬虫做了限制,短时间内多次爬取,就会禁掉IP,所以你得设置IP代理池,来回切换IP,保证程序正常进行,在这过程中你得需要了解常见反爬机制,对症下药,做到尽可能不被服务器发现。
5.熟悉爬取基本网页后,就可以试着爬取比较大型网站的数据了,像某宝数据等,在这过程中你可能会发现有些数据不在网页中,这就是异步加载,你就需要抓包分析数据,获取真实的数据URL,才能进行爬取。
6.基本爬虫包了解后,你会发现每次爬数据都需要自己构建代码,组织结构,很麻烦,这时你就需要学习scrapy框架,专门为爬虫做的一个框架,做起爬虫来,速度快了不少。
7.爬得数据量多了,你会发现一个电脑太慢,一个线程不快,这时你就可能需要多个线程,多个电脑,你就需要了解多线程,分布式爬虫,像scrapy-redis等。
8.数据量大了,你就不可能存储到一个普通文件之中吧,就需要用到数据库,mysql,mongodb等,你就需要了解基本的数据库知识,增删改查,以及数据的涉及和搭建等。
9.数据已经有了,你就需要对它进行分析,不然爬下来,放在那,没有任何意义,数据统计处理,数据可视化,如何构建分析模型,挖掘有价值的信息,机器学习等都会用到,接下来就看你的处理了。
我感觉爬虫就是一个获取数据的过程,最重要的还是如何处理数据,挖掘有价值的信息才是重点,当然,没有数据,一切都是空谈,数据才是资源。
怎么学习python数据分析?
Python数据分析,主要需要学习以下内容:
1、Python语法基础
2、Python数据分析扩展包:Numpy、Pandas、Matplotlib等
3、Python爬虫基础(非必须,但可以提升兴趣)
4、Python数据探索及预处理
5、Python机器学习
Python语法基础
Python作为一门编程语言,当然需要先学习其语法基础,如果学习过其他编程语言,上手Python会比较快。Python语法基础需要掌握以下内容:
网上有很多学习资料,随便买本书就可以,或者学习本号录制的Python数据分析视频。
Python数据分析扩展包
有了Python基础后,接下来就需要学习Python数据分析扩展包了,常用的有3个:Numpy、Pandas和Matplotlib。
1、Numpy
NumPy系统是Python的一种开源的数值计算框架。这种工具可用来存储和处理大型矩阵,相当于将Python相当于变成一种免费的更强大的MatLab系统。
2、Pandas
Pandas,最初被作为金融数据分析工具而开发出来,因而Pandas为时间序列分析提供了很好的支持。另外Python中常用的DataFrame,及用读取外部数据文件的方法都属于Pandas。
3、Matplotlib
Matplotlib是一个很强大的Python可视化库,可以很轻松地绘制各种数据图表,包括三维图表。
Python爬虫基础(非必须)
严格来说,Python爬虫不属于Python数据分析的范畴,但是可以作为一个可以提升自己兴趣,以及提升自己Python功底的工具,当然有些时候,数据分析师也需要自己爬取一些数据。
Python数据探索及预处理方法
在学习了以上内容后,还需要学习一些常用的数据探索及预处理方法,才能够用Python进行一些基础统计分析,因为很多时候在分析数据前,还需要对数据进行探索及预处理。
Python机器学习
在学习了以上内容后,就可以学习更强大也更复杂的分析方法了,也就说所谓的数据挖掘,主要工具就是机器学习。
1、机器学习绪论
首先需要了解机器学习,及其常见术语。
2、机器学习常用算法
机器学习常用算法分为两类,监督学习和无监督学习。
大部分算法可以通过调用Scikit-learn中的现成算法来实现,当然可以自己编写算法,前提是数学功底要好,而且要对算法的原理掌握得很透彻。
回答完毕!