Feng’ Blog

Python爬虫-介绍
最近博主在学习Python,学习期间也遇到一些问题,获得了一些经验,在此将自己的学习系统地整理下来,如果大家有兴趣...
扫描右侧二维码阅读全文
01
2018/05

Python爬虫-介绍

最近博主在学习Python,学习期间也遇到一些问题,获得了一些经验,在此将自己的学习系统地整理下来,如果大家有兴趣学习爬虫的话,可以将这些文章作为参考,也欢迎大家一共分享学习经验。

博主使用的Python版本为2.7。
1-1.png

网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动的抓取万维网信息的程序或者脚本。

要学习Python爬虫,我们要学习的共有以下几点:

  • Python基础知识
  • Python中urllib和urllib2库的用法
  • Python正则表达式
  • Python爬虫框架
  • Scrapy Python爬虫更高级的功能

1 基础知识:

首先,我们要用Python写爬虫,肯定要了解Python的基础

推荐:廖雪峰python入门

2 Python urllib和urllib2 库的用法

urllib和urllib2库是学习Python爬虫最基本的库,利用这个库我们可以得到网页的内容,并对内容用正则表达式提取分析,得到我们想要的结果。

Python爬虫-介绍

3 Python 正则表达式

Python正则表达式是一种用来匹配字符串的强有力的武器。它的设计思想是用一种描述性的语言来给字符串定义一个规则,凡是符合规则的字符串,我们就认为它“匹配”了,否则,该字符串就是不合法的。这个在后面的博文会分享的。

4 爬虫框架Scrapy

Scrapy框架官方介绍:

HTML, XML源数据 选择及提取 的内置支持

提供了一系列在spider之间共享的可复用的过滤器(即 Item Loaders),对智能处理爬取数据提供了内置支持。

通过 feed导出 提供了多格式(JSON、CSV、XML),多存储后端(FTP、S3、本地文件系统)的内置支持 提供了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/

什么是爬虫?

爬虫,即网络爬虫,大家可以理解为在网络上爬行的一直蜘蛛,互联网就比作一张大网,

而爬虫便是在这张网上爬来爬去的蜘蛛咯,如果它遇到资源,那么它就会抓取下来。想抓取什么?这个由你来控制它咯。

比如它在抓取一个网页,在这个网中他发现了一条道路,其实就是指向网页的超链接,那么它就可以爬到另一张网上来获取数据。这样,整个连在一起的大网对这之蜘蛛来说触手可及,分分钟爬下来不是事儿。

浏览网页的过程

用户浏览网页的过程中,我们可能会看到许多好看的图片,比如 http://image.baidu.com/

我们会看到几张的图片以及百度搜索框,这个过程其实就是用户输入网址之后,经过DNS服务器,找到服务器主机,向服务器发出一个请求,服务器经过解析之后,发送给用户的浏览器 HTML、JS、CSS 等文件,浏览器解析出来,用户便可以看到形形色色的图片了。

因此,用户看到的网页实质是由 HTML 代码构成的,爬虫爬来的便是这些内容,通过分析和过滤这些 HTML 代码,实现对图片、文字等资源的获取。

环境的配置

学习Python,当然少不了环境的配置,在Windows下我用了PyCharm,在Linux下我用了Eclipse for Python,另外还有几款比较优秀的IDE,大家可以参考这篇文章 学习Python推荐的IDE 。好的开发工具是前进的推进器,希望大家可以找到适合自己的IDE

Last modification:January 9th, 2019 at 11:35 am
If you think my article is useful to you, please feel free to appreciate

Leave a Comment