你们好哈,最近博主在学习Python,学习期间也遇到一些问题,得到了一些经验,在此将本身的学习系统地整理下来,若是你们有兴趣学习爬虫的话,能够将这些文章做为参考,也欢迎你们一共分享学习经验。python
Python版本:2.7,Python 3请另寻其余博文。正则表达式
首先爬虫是什么?shell
网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更常常的称为网页追逐者),是一种按照必定的规则,自动的抓取信息的程序或者脚本。后端
根据个人经验,要学习Python爬虫,咱们要学习的共有如下几点:浏览器
首先,咱们要用Python写爬虫,确定要了解Python的基础吧,万丈高楼平地起,不能忘啦那地基,哈哈,那么我就分享一下本身曾经看过的一些Python教程,小伙伴们能够做为参考。缓存
曾经有一些基础的语法是在慕课网上看的,上面附有一些练习,学习完以后能够做为练习,感受效果仍是蛮不错的,不过稍微遗憾的是内容基本上都是最基础的,入门开始的话,就这个吧服务器
学习网址:慕课网Python教程cookie
后来,我发现了廖老师的Python教程,讲的那是很是通俗易懂哪,感受也是很是不错,你们若是想进一步了解Python就看一下这个吧。网络
还有一个我看过的,简明Python教程,感受讲的也不错session
urllib和urllib2库是学习Python爬虫最基本的库,利用这个库咱们能够获得网页的内容,并对内容用正则表达式提取分析,获得咱们想要的结果。这个在学习过程当中我会和你们分享的。
Python正则表达式是一种用来匹配字符串的强有力的武器。它的设计思想是用一种描述性的语言来给字符串定义一个规则,凡是符合规则的字符串,咱们就认为它“匹配”了,不然,该字符串就是不合法的。这个在后面的博文会分享的。 厦门叉车
若是你是一个Python高手,基本的爬虫知识都已经掌握了,那么就寻觅一下Python框架吧,我选择的框架是Scrapy框架。这个框架有什么强大的功能呢?下面是它的官方介绍:
HTML, XML源数据 选择及提取 的内置支持
提供了一系列在spider之间共享的可复用的过滤器(即 Item Loaders),对智能处理爬取数据提供了内置支持。
经过 feed导出 提供了多格式(JSON、CSV、XML),多后端(FTP、S三、本地)的内置支持
提供了media pipeline,能够 自动下载 爬取到的数据中的图片(或者其余资源)。
高扩展性。您能够经过使用 signals ,设计好的API(中间件, extensions, pipelines)来定制实现您的功能。
内置的及扩展为下列功能提供了支持:
cookies and session 处理
HTTP 压缩
HTTP 认证
HTTP 缓存
user-agent模拟
robots.txt
爬取深度限制
针对非英语语系中不标准或者错误的编码声明, 提供了自动检测以及健壮的编码支持。
支持根据模板生成爬虫。在加速爬虫建立的同时,保持在大型项目中的代码更为一致。详细内容请参阅 genspider 命令。
针对多爬虫下性能评估、失败,提供了可扩展的 状态收集工具 。
提供 shell终端 , 为您测试XPath表达式,编写和调试爬虫提供了极大的方便
提供 System service, 简化在生产环境的部署及运行
内置 Web service, 使您能够监视及控制您的机器
内置 Telnet终端 ,经过在Scrapy进程中钩入Python终端,使您能够查看而且调试爬虫
Logging 为您在爬取过程当中捕捉错误提供了方便
支持 Sitemaps 爬取
具备缓存的DNS解析器
官方文档:http://doc.scrapy.org/en/latest/
等咱们掌握了基础的知识,再用这个 Scrapy 框架吧!
扯了这么多,好像没多少有用的东西额,那就不扯啦!
爬虫,即网络爬虫,你们能够理解为在网络上爬行的一直蜘蛛,互联网就比做一张大网,而爬虫即是在这张网上爬来爬去的蜘蛛咯,若是它遇到资源,那么它就会抓取下来。想抓取什么?这个由你来控制它咯。
好比它在抓取一个网页,在这个网中他发现了一条道路,其实就是指向网页的超连接,那么它就能够爬到另外一张网上来获取数据。这样,整个连在一块儿的大网对这之蜘蛛来讲触手可及,分分钟爬下来不是事儿。
在用户浏览网页的过程当中,咱们可能会看到许多好看的图片,好比 http://image.baidu.com/ ,咱们会看到几张的图片以及百度搜索框,这个过程其实就是用户输入网址以后,通过DNS,找到服务器主机,向服务器发出一个请求,服务器通过解析以后,发送给用户的浏览器 HTML、JS、CSS 等文件,浏览器解析出来,用户即可以看到形形色色的图片了。
所以,用户看到的网页实质是由 HTML 代码构成的,爬虫爬来的即是这些内容,经过分析和过滤这些 HTML 代码,实现对图片、文字等资源的获取。
URL,即统一资源定位符,也就是咱们说的网址,统一资源定位符是对能够从互联网上获得的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每一个文件都有一个惟一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。
URL的格式由三部分组成:
①第一部分是协议(或称为服务方式)。
②第二部分是存有该资源的主机IP地址(有时也包括端口号)。
③第三部分是资源的具体地址,如目录和文件名等。
爬虫爬取数据时必需要有一个目标的URL才能够获取数据,所以,它是爬虫获取数据的基本依据,准确理解它的含义对爬虫学习有很大帮助。
学习Python,固然少不了环境的配置,最初我用的是Notepad++,不过发现它的提示功能实在是太弱了,因而,在Windows下我用了 PyCharm,在Linux下我用了Eclipse for Python,另外还有几款比较优秀的IDE,你们能够参考这篇文章 学习Python推荐的IDE 。好的是前进的,但愿你们能够找到适合本身的IDE