因为研究生阶段主要的方向是数据挖掘方向,需要从网上获取大量的数据,如果一页一页的手动复制的化,不知道到何年何月了,所以慢慢开始接触到python爬虫,我大概介绍一下自己的学习历程吧:
1.首先要有一定的python基础,环境要熟悉,基本的语法和包也要会使用,至于python基础教程,网上很多,有视频也有pdf的,这个因人而异,我入门主要学习的是《python基础教程》这本书,对应的是python2,这本书写的比较全面,介绍的也比较详细,只要认认真真的跟着书学习,一边练习代码,很快就能熟悉python基础,掌握基本知识和常见包的使用。
2.对网页基本知识也要有一定了解,像html,css,javascript等,没必要精通它们,但是最起码得了解一二,要爬的数据都在网页中,你对网页一点都不了解,这根本就不行,至于这些入门的东西,你可以在网上搜搜,我推荐/,介绍的很全面:
3.然后就是一些爬虫基本包的使用,像urllib,urllib2,requests,bs4等,这些教程,网上都有,官方也有详细的文档说明,你可以试着爬取一些比较简单的网页,像糗百等。
4.在爬取有些网页的过程中,你会发现莫名的程序就中断,连接不上服务器,这就是反爬机制,许多网站都对爬虫做了限制,短时间内多次爬取,就会禁掉IP,所以你得设置IP代理池,来回切换IP,保证程序正常进行,在这过程中你得需要了解常见反爬机制,对症下药,做到尽可能不被服务器发现。
5.熟悉爬取基本网页后,就可以试着爬取比较大型网站的数据了,像某宝数据等,在这过程中你可能会发现有些数据不在网页中,这就是异步加载,你就需要抓包分析数据,获取真实的数据URL,才能进行爬取。
6.基本爬虫包了解后,你会发现每次爬数据都需要自己构建代码,组织结构,很麻烦,这时你就需要学习scrapy框架,专门为爬虫做的一个框架,做起爬虫来,速度快了不少。
7.爬得数据量多了,你会发现一个电脑太慢,一个线程不快,这时你就可能需要多个线程,多个电脑,你就需要了解多线程,分布式爬虫,像scrapy-redis等。
8.数据量大了,你就不可能存储到一个普通文件之中吧,就需要用到数据库,mysql,mongodb等,你就需要了解基本的数据库知识,增删改查,以及数据的涉及和搭建等。
9.数据已经有了,你就需要对它进行分析,不然爬下来,放在那,没有任何意义,数据统计处理,数据可视化,如何构建分析模型,挖掘有价值的信息,机器学习等都会用到,接下来就看你的处理了。
我感觉爬虫就是一个获取数据的过程,最重要的还是如何处理数据,挖掘有价值的信息才是重点,当然,没有数据,一切都是空谈,数据才是资源。