爬虫学习阶段性总结

爬虫学习阶段性总结

爬虫的基础知识我打算就先学到这里了,以后需要用起来的时候再去看看相关文档和谷歌,做一个小量级的爬虫程序问题不大,对于分布式的和增量更新去重等需求就直接上框架,用别人的轮子还是蛮爽的。

简单小量级:requests+pyquery

JS渲染太多的:selenium+Phantomjs

框架:Pyspider或者Scrapy,个人比较喜欢Scrapy,主要是pyspider的文档真的少,两者框架差不多的,前者有WEBUI,后者是命令行模式,看喜欢哪个就用哪个吧。

学习资料总结:

第一部分基础

1. 环境搭建:

建议直接用虚拟机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. 崔庆才博客和教程视频:

https://cuiqingcai.com

教学视频在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

这个破解例子不错:

2. 一个完整的爬虫+前端界面(真的挺棒的!)

https://github.com/GuozhuHe/webspider

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20171211G0DOK100?refer=cp_1026

扫码关注云+社区