爬虫学习阶段性总结css
爬虫的基础知识我打算就先学到这里了,之后须要用起来的时候再去看看相关文档和谷歌,作一个小量级的爬虫程序问题不大,对于分布式的和增量更新去重等需求就直接上框架,用别人的轮子仍是蛮爽的。html
简单小量级:requests+pyquery前端
JS渲染太多的:selenium+Phantomjspython
框架:Pyspider或者Scrapy,我的比较喜欢Scrapy,主要是pyspider的文档真的少,二者框架差很少的,前者有WEBUI,后者是命令行模式,看喜欢哪一个就用哪一个吧。git
学习资料总结:程序员
第一部分基础github
1. 环境搭建:web
建议直接用虚拟机ubuntu(自带python2和3),terminal敲代码就能够了正则表达式
2. python基础(0基础的看这个):数据库
http://www.runoob.com/python3/python3-tutorial.html
3. 看完上面这个以后看下面这个:(感受做者写到错误调试那一章以后就不是太好了,感受是一股脑东西给你砸过来)
https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000
扩展阅读:
《简明python教程》
https://molun.net/byte-of-python-2017-new-translation-edition-release/
4. Git教程
https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
这个写的蛮好的,看这个就够了,后续须要的项目代码能够从github上拷贝,在上面也有不少的爬虫项目能够参考,注意看star和fork数量,能够参考时间比较新的(push时间),算是一个挺好的资源来源(比本身百度去搜索的爬虫不少都过时了,或者网站策略 更新了,对新手不太友好,会浪费比较多时间)
第二部分爬虫:
1. 崔庆才博客和教程视频:
教学视频在youtube有,我也存到本地网盘了。
视频内容都挺好的,一步步作下来,基本也就入门了爬虫了
2. 阅读相关的基础知识:
上面作爬虫的时候会常常遇到一些概念(前端),崔是作前端的,因此有些讲的很快,不懂的时候建议把视频暂停下来,看看下面这些概念
HTTP/HTML/AJAX/JSON/CSS/XPATH
教程均可以在这里找到:
看重点就能够了,不须要所有都看,好比HTML就看一下基础元素属性和总结就行了,须要用到其余的时候再补
3. 数据库的基础知识:
教程均可以在这里找到:
MySQL/MongoDB/Redis
同理,看一下基础应用就行了,简单爬虫要求并不高,后续再深刻学习。
4. 阅读相关的库文档,按照库文档的理解敲敲例子
这里包括请求库,解析库,存储库和工具库
大概是下面这些(资料经过百度或者谷歌都能搜到)
requests/re/selenium/lxml/beautifulSoup/pyquery/pyspider/scrapy/pymql/pymongo
重点以为应该看一下几个解析库,好比bs4/pyquery/lxml和用一下css/xpath语法,熟悉一下每次筛选以后是什么类型的数据,以及怎么遍历,取出本身想要的数据,每一个例子最好都使用print(type())打印一下类型,加深理解。
第三部分爬虫练手资源:
1. 知乎分享的合集(有挺多不能用得了,可是能够参考一下名字,搜一下最新的文章)
https://zhuanlan.zhihu.com/p/27938007
2. 崔庆才视频中的几个项目
不须要太多。
第四部分其余经验:
1. 爬虫容易写出知足感,因此不要在这上面花太多时间(其实我须要数据的时候仍是找其余人要的,因此加个QQ群,程序员都是乐于助人的),适可而止就行了,除非要在爬虫这个职业上作长期发展
2. 加多几个靠谱的python或者爬虫QQ群
3. 多作笔记,多写代码(写个爬虫可能只须要1个小时,可是写个文章就须要2个小时,在写文章的过程当中加深理解,跟读书的时候作笔记是同样的)
4. 至少要作到如下几个爬虫例子:
(1) requests+正则表达式爬取静态网页(最好是加入搜索关键词的),并加入多进程,数据库存储,文件下载(图片和文本)
(2) requests+lxml+xpath爬取静态网页,其余同第(1)点
(3) requests+bs4+css/xpath爬取静态网页,其余同第(1)点
(4) requests+pyquery+css爬取静态网页,其余同第(1)点
(5) selenium+Phantomjs爬取静态网页,其余同第(1)点
(6) pyspider+ selenium+Phantomjs爬取静态网页,其余同第(1)点(静态网页用pyspider爬感受大材小用)
(7) scrapy爬取动态网页,其余同第(1)点
(8) 找一个封IP和cookies的网站(好比微博),用scrapy爬取,把几个pipeline都用起来,而后加入分布式爬取(找3个云服务器就ok了,一个发布任务,两个爬取),其余同第(1)点
5. 坚持,适可而止
第五部分 其余资源:
1. 反爬文章参考:
这个写的很全面也挺棒的:
http://www.freebuf.com/articles/web/137763.html
这是一个实例演示,也不错:
http://www.freebuf.com/news/140965.html
这个破解例子不错:
http://blog.csdn.net/bone_ace/article/details/71056741
2. 一个完整的爬虫+前端界面(真的挺棒的!)
https://github.com/GuozhuHe/webspider