爬虫@IT·互联网Python语言与信息数据获取和机器学习

爬虫入门学习总结

2017-09-12  本文已影响221人  想酷却酷不起来

最近忙着开学,很久没有写博客,今天难得有时间,就总结一下这段时间对爬虫的学习,以及分享一些比较好的免费入门教程。

通过这几天对爬虫简单的学习,感觉爬虫的学习就像前端,入门容易,要想深入还是有一定难度。因为python有很多现成的库,如果你稍微了解一点html和网络方面的知识,看一下相关库的示例代码,扒拉一个网页到本地最多2行代码,其中还有一行是import,这里当然不包括解析数据,解析数据已经是后话了,你首先得把数据抓取下来,可能入门抓的网页没有什么反爬虫策略或者抓取数据量小没有触发反爬虫系统,感觉一下就爬到数据了,好像大部分时间都在解析数据,但是我觉得真正难的是抓取,怎么解析完全看自己实际需要。

大部分人接触爬虫一开始接触的基本都是静态爬虫,即不需要登录就能访问数据,数据基本不是通过动态加载的。而往深里,很多数据是需要登录之后才能爬取的,很多数据是通过ajax请求的,那么你需要分析清楚哪个请求请求/提交了哪些数据,请求/提交的机制是什么,这就要求你对http协议的认识比较深刻,而另一大块就是如何应对服务器端的反爬虫,拿最简单的来说,别人的数据希望用户通过浏览器正常访问,而非被“”贪心又猥琐“”的爬虫来访问,所以服务器端都会想方设法辨别你是正常用户还是爬虫,比如验证码就是一个令人很头疼的问题,特别是一些变态的验证码,比如12306...,此外爬虫爬取的效率也是一个问题,所以爬取数据量大的时候,你不可能仅仅用自己的小笔记本,而要用到分布式爬虫,利用多台计算机来完成任务。

那么,自己作为一个爬虫小白,爬虫之路才刚刚开始,到目前为止,接触的基本都是静态爬虫,爬了百度百科的词条,嗅事百科的段子,百度贴吧的帖子,豆瓣电影top250,新浪新闻文章,但是爬了这么多,唯一让我遗憾的是碰到的问题并不多,因为这都是静态数据,既不需要登录,也不需要分析请求,所以我觉得爬虫入门真的很简单,但是学编程问题越多,成长越大,没有碰到问题,不是说明你屌,而是说明你还在原地踏步。所以,对静态爬虫学习暂时先到这里,接下来主要学习如何编写动态爬虫,动态爬虫有俩种思路。

  1. 分析网络请求,搞清楚目标网站的数据请求策略
  2. 模拟用户操作浏览器行为,比如说你登录知乎,你需要先点击一下登录,然后在点击一下用帐号和密码登录,然后在是输入帐号,密码。这个过程可以很方便的用selenium+phantomjs来模拟.

方法一是根本,方法二偷懒是偷懒,但是速度太慢,今晚试了一下,挺好用,豆瓣可以成功登录,但是知乎不知道该如何处理验证码。

最后,推荐给需要的朋友一些免费的爬虫入门教程

python开发简单爬虫
这个是爬取百度百科词条,视频讲解的非常简单清晰,而且用的面向对象的写法,思路很顺,看完静态爬虫差不多就会写了。
Python爬虫学习系列教程
这个博客是系列的,很多人都推荐,实践项目也不少,你可以挑几个来做,但是有一个很大问题是很多代码比较久了,原来的网站结构已经改了,有的代码不一定能跑成功,所以需要克服一下
python网络爬虫实战
这个是网易云课堂的教程,以爬取新浪新闻讲解的,也讲的非常好,用到的是Requests库,而非urilib,而且你会遇到一点数据动态加载的问题,可以从此进入动态爬虫的学习
看书的话,可以选择python网络数据采集

上一篇下一篇

猜你喜欢

热点阅读