文档章节

RHEL 5下安装Scrapy-0.14.0.2841爬虫框架

durban
 durban
发布于 2012/04/30 19:29
字数 1977
阅读 173
收藏 1

Scrapy是一款非常成熟的爬虫框架,可以抓取网页数据并抽取结构化数据,目前已经有很多企业用于生产环境。对于它的更多介绍,可以查阅相关资料(官方网站:www.scrapy.org)。

我们根据官网提供的安装指南,来一步步安装,主要参考了http://doc.scrapy.org/en/latest/intro/install.html页面的介绍:

[html]  view plain copy
  1. Requirements¶  
  2. Python 2.5, 2.6, 2.7 (3.x is not yet supported)  
  3. Twisted 2.5.0, 8.0 or above (Windows users: you’ll need to install Zope.Interface and maybe pywin32 because of this Twisted bug)  
  4. w3lib  
  5. lxml or libxml2 (if using libxml2, version 2.6.28 or above is highly recommended)  
  6. simplejson (not required if using Python 2.6 or above)  
  7. pyopenssl (for HTTPS support. Optional, but highly recommended)  
下面记录一下从安装Python到安装scrapy的过程,最后,通过执行命令进行抓取数据来验证我们所做的安装配置工作。

准备工作

操作系统:RHEL 5
Python版本:Python-2.7.2
zope.interface版本:zope.interface-3.8.0
Twisted版本:Twisted-11.1.0
libxml2版本:libxml2-2.7.4.tar.gz
w3lib版本:w3lib-1.0
Scrapy版本:Scrapy-0.14.0.2841

安装配置

1、安装zlib

首先检查一下你的系统中是否已经安装zlib,该库是一个与数据压缩相关的工具包,scrapy框架依赖于该工具包。我使用的RHEL 5系统,查看是否安装:

[python]  view plain copy
  1. [root@localhost scrapy]# rpm -qa zlib  
  2. zlib-1.2.3-3  
我的系统已经默认安装了,安装的话,可以跳过该步骤。如果没有安装的话,可以到 http://www.zlib.net/ 上下载,并进行安装。假如下载的是zlib-1.2.5.tar.gz,安装命令如下所示:

[plain]  view plain copy
  1. [root@localhost scrapy]# tar -xvzf zlib-1.2.5.tar.gz  
  2. [root@localhost zlib-1.2.5]# cd zlib-1.2.5  
  3. [root@localhost zlib-1.2.5]# make  
  4. [root@localhost zlib-1.2.5]# make install  

2、安装Python

我的系统中已经安装的Python 2.4,根据官网要求和建议,我选择了Python-2.7.2,下载地址如下所示:

http://www.python.org/download/(需要代理)
http://www.python.org/ftp/python/2.7.2/Python-2.7.2.tgz

我下载了Python的源代码,重新编译后,进行安装,过程如下所示:

[plain]  view plain copy
  1. [root@localhost scrapy]# tar -zvxf Python-2.7.2.tgz  
  2. [root@localhost scrapy]# cd Python-2.7.2  
  3. [root@localhost Python-2.7.2]# ./configure  
  4. [root@localhost Python-2.7.2]# make  
  5. [root@localhost Python-2.7.2]# make install  

默认情况下,Python程序被安装到/usr/local/lib/python2.7。

如果你的系统中没有安装过Python,此时通过命令行执行一下:

[plain]  view plain copy
  1. [root@localhost scrapy]# python  
  2. Python 2.7.2 (default, Dec  5 2011, 22:04:07)   
  3. [GCC 4.1.1 20070105 (Red Hat 4.1.1-52)] on linux2  
  4. Type "help", "copyright", "credits" or "license" for more information.  
  5. >>>  
表示最新安装的Python已经可以使用了。

如果你的系统中还有其他版本的Python,例如我的系统中2.4版本的,所以要做一个符号链接:

[plain]  view plain copy
  1. [root@localhost python2.7]# mv /usr/bin/python /usr/bin/python.bak  
  2. [root@localhost python2.7]# ln -s /usr/local/bin/python /usr/bin/python  
这样操作以后,在执行python,就生效了。

3、安装setuptools

这里主要是安装一个用来管理Python模块的工具,如果已经安装就跳过该步骤。如果你需要安装,可以参考下面的链接:

http://pypi.python.org/pypi/setuptools/0.6c11#installation-instructions
http://pypi.python.org/packages/2.7/s/setuptools/setuptools-0.6c11-py2.7.egg#md5=fe1f997bc722265116870bc7919059ea

不过,在安装Python-2.7.2以后,可以看到Python的解压缩包里面有一个setup.py脚本,使用这个脚本可以安装Python一些相关的模块,执行命令:

[plain]  view plain copy
  1. [root@localhost Python-2.7.2]# python setup.py install  
安装执行后,相关Python模块被安装到目录/usr/local/lib/python2.7/site-packages下。

4、安装zope.interface

下载地址如下所示:

http://pypi.python.org/pypi/zope.interface/3.8.0
http://pypi.python.org/packages/source/z/zope.interface/zope.interface-3.8.0.tar.gz#md5=8ab837320b4532774c9c89f030d2a389

安装过程如下所示:

[plain]  view plain copy
  1. [root@localhost scrapy]$ tar -xvzf zope.interface-3.8.0.tar.gz  
  2. [root@localhost scrapy]$ cd zope.interface-3.8.0  
  3. [root@localhost zope.interface-3.8.0]$ python setup.py build  
  4. [root@localhost zope.interface-3.8.0]$ python setup.py install  
安装完成后,可以在/usr/local/lib/python2.7/site-packages下面看到zope和zope.interface-3.8.0-py2.7.egg-info。

5、安装Twisted

下载地址如下所示:

http://twistedmatrix.com/trac/
http://pypi.python.org/packages/source/T/Twisted/Twisted-11.1.0.tar.bz2#md5=972f3497e6e19318c741bf2900ffe31c

安装过程如下所示:

[plain]  view plain copy
  1. [root@localhost scrapy]# bzip2 -d Twisted-11.1.0.tar.bz2  
  2. [root@localhost scrapy]# tar -xvf Twisted-11.1.0.tar  
  3. [root@localhost scrapy]# cd Twisted-11.1.0  
  4. [root@localhost Twisted-11.1.0]# python setup.py install  
安装完成后,可以在/usr/local/lib/python2.7/site-packages下面看到twisted和Twisted-11.1.0-py2.7.egg-info。

6、安装w3lib

下载地址如下所示:

http://pypi.python.org/pypi/w3lib
http://pypi.python.org/packages/source/w/w3lib/w3lib-1.0.tar.gz#md5=f28aeb882f27a616e0fc43d01f4dcb21

安装过程如下所示:

[plain]  view plain copy
  1. [root@localhost scrapy]# tar -xvzf w3lib-1.0.tar.gz  
  2. [root@localhost scrapy]# cd w3lib-1.0  
  3. [root@localhost w3lib-1.0]# python setup.py install  
安装完成后,可以在/usr/local/lib/python2.7/site-packages下面看到w3lib和w3lib-1.0-py2.7.egg-info。

7、安装libxml2

下载地址如下所示:

http://download.chinaunix.net/download.php?id=28497&ResourceID=6095
http://download.chinaunix.net/down.php?id=28497&ResourceID=6095&site=1

或者,可以到网站http://xmlsoft.org上面找到相应版本的压缩包。

安装过程如下所示:

[plain]  view plain copy
  1. [root@localhost scrapy]# tar -xvzf libxml2-2.7.4.tar.gz  
  2. [root@localhost scrapy]# cd libxml2-2.7.4  
  3. [root@localhost libxml2-2.7.4]# ./configure  
  4. [root@localhost libxml2-2.7.4]# make  
  5. [root@localhost libxml2-2.7.4]# make install  

8、安装pyOpenSSL

该步骤可选,对应的安装包下载地址为:

https://launchpad.net/pyopenssl

如果需要的话,可以选择需要的版本。我这里直接跳过该步骤。

9、安装Scrapy

下载地址如下所示:

http://scrapy.org/download/
http://pypi.python.org/pypi/Scrapy
http://pypi.python.org/packages/source/S/Scrapy/Scrapy-0.14.0.2841.tar.gz#md5=fe63c5606ca4c0772d937b51869be200

安装过程如下所示:

[plain]  view plain copy
  1. [root@localhost scrapy]# tar -xvzf Scrapy-0.14.0.2841.tar.gz  
  2. [root@localhost scrapy]# cd Scrapy-0.14.0.2841  
  3. [root@localhost Scrapy-0.14.0.2841]# python setup.py install  

安装验证

经过上面的安装和配置过程,已经完成了Scrapy的安装,我们可以通过如下命令行来验证一下:

[plain]  view plain copy
  1. [root@localhost scrapy]# scrapy  
  2. Scrapy 0.14.0.2841 - no active project  
  3.   
  4. Usage:  
  5.   scrapy <command> [options] [args]  
  6.   
  7. Available commands:  
  8.   fetch         Fetch a URL using the Scrapy downloader  
  9.   runspider     Run a self-contained spider (without creating a project)  
  10.   settings      Get settings values  
  11.   shell         Interactive scraping console  
  12.   startproject  Create new project  
  13.   version       Print Scrapy version  
  14.   view          Open URL in browser, as seen by Scrapy  
  15.   
  16. Use "scrapy <command> -h" to see more info about a command  
上面提示信息,提供了一个fetch命令,这个命令抓取指定的网页,可以先看看fetch命令的帮助信息,如下所示:

[plain]  view plain copy
  1. [root@localhost scrapy]# scrapy fetch --help  
  2. Usage  
  3. =====  
  4.   scrapy fetch [options] <url>  
  5.   
  6. Fetch a URL using the Scrapy downloader and print its content to stdout. You  
  7. may want to use --nolog to disable logging  
  8.   
  9. Options  
  10. =======  
  11. --help, -h              show this help message and exit  
  12. --spider=SPIDER         use this spider  
  13. --headers               print response HTTP headers instead of body  
  14.   
  15. Global Options  
  16. --------------  
  17. --logfile=FILE          log file. if omitted stderr will be used  
  18. --loglevel=LEVEL, -L LEVEL  
  19.                         log level (default: DEBUG)  
  20. --nolog                 disable logging completely  
  21. --profile=FILE          write python cProfile stats to FILE  
  22. --lsprof=FILE           write lsprof profiling stats to FILE  
  23. --pidfile=FILE          write process ID to FILE  
  24. --set=NAME=VALUE, -s NAME=VALUE  
  25.                         set/override setting (may be repeated)  
根据命令提示,指定一个URL,执行后抓取一个网页的数据,如下所示:

[plain]  view plain copy
  1. [root@localhost scrapy]# scrapy fetch http://doc.scrapy.org/en/latest/intro/install.html > install.html  
  2. 2011-12-05 23:40:04+0800 [scrapy] INFO: Scrapy 0.14.0.2841 started (bot: scrapybot)  
  3. 2011-12-05 23:40:04+0800 [scrapy] DEBUG: Enabled extensions: LogStats, TelnetConsole, CloseSpider, WebService, CoreStats, MemoryUsage, SpiderState  
  4. 2011-12-05 23:40:04+0800 [scrapy] DEBUG: Enabled downloader middlewares: HttpAuthMiddleware, DownloadTimeoutMiddleware, UserAgentMiddleware, RetryMiddleware, DefaultHeadersMiddleware, RedirectMiddleware, CookiesMiddleware, HttpCompressionMiddleware, ChunkedTransferMiddleware, DownloaderStats  
  5. 2011-12-05 23:40:04+0800 [scrapy] DEBUG: Enabled spider middlewares: HttpErrorMiddleware, OffsiteMiddleware, RefererMiddleware, UrlLengthMiddleware, DepthMiddleware  
  6. 2011-12-05 23:40:04+0800 [scrapy] DEBUG: Enabled item pipelines:   
  7. 2011-12-05 23:40:05+0800 [default] INFO: Spider opened  
  8. 2011-12-05 23:40:05+0800 [default] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)  
  9. 2011-12-05 23:40:05+0800 [scrapy] DEBUG: Telnet console listening on 0.0.0.0:6023  
  10. 2011-12-05 23:40:05+0800 [scrapy] DEBUG: Web service listening on 0.0.0.0:6080  
  11. 2011-12-05 23:40:07+0800 [default] DEBUG: Crawled (200) <GET http://doc.scrapy.org/en/latest/intro/install.html> (referer: None)  
  12. 2011-12-05 23:40:07+0800 [default] INFO: Closing spider (finished)  
  13. 2011-12-05 23:40:07+0800 [default] INFO: Dumping spider stats:  
  14.         {'downloader/request_bytes': 227,  
  15.          'downloader/request_count': 1,  
  16.          'downloader/request_method_count/GET': 1,  
  17.          'downloader/response_bytes': 22676,  
  18.          'downloader/response_count': 1,  
  19.          'downloader/response_status_count/200': 1,  
  20.          'finish_reason': 'finished',  
  21.          'finish_time': datetime.datetime(2011, 12, 5, 15, 40, 7, 918833),  
  22.          'scheduler/memory_enqueued': 1,  
  23.          'start_time': datetime.datetime(2011, 12, 5, 15, 40, 5, 5749)}  
  24. 2011-12-05 23:40:07+0800 [default] INFO: Spider closed (finished)  
  25. 2011-12-05 23:40:07+0800 [scrapy] INFO: Dumping global stats:  
  26.         {'memusage/max': 17711104, 'memusage/startup': 17711104}  
  27. [root@localhost scrapy]# ll install.html   
  28. -rw-r--r-- 1 root root 22404 Dec  5 23:40 install.html  
  29. [root@localhost scrapy]#  
可见,我们已经成功抓取了一个网页。

接下来,可以根据scrapy官网的指南来进一步应用scrapy框架,Tutorial链接页面为http://doc.scrapy.org/en/latest/intro/tutorial.html

本文转载自:http://blog.csdn.net/shirdrn/article/details/7044127

durban
粉丝 102
博文 567
码字总数 184197
作品 0
崇明
后端工程师
私信 提问
RHEL/CentOS 7.x使用EPEL第三方yum源

PS:EPEL的yum源是很稳定的第三方yum安装源,也是我经常使用的,基于CentOS/RHEL 7.x的也有了,整理如下: # wget http://dl.fedoraproject.org/pub/epel/beta/7/x86_64/epel-release-7-0.2...

Geekwolf
2014/07/23
942
0
如何能让Linux平台支持NTFS文件系统

How to access NTFS from Linux 一、关于RedHat and Fedora支持 的ntfs软件包 Version Level of Support Fedora 6 Support provided by Fedora Extras. See notes below.. Fedora 5 Full sup......

zt371
2009/05/07
635
0
RHEL/CentOS6/5/4使用EPELyum源

确保Linux能正常访问Internet,安装wget工具。 1、下载epel软件包。 RHEL/CentOS 6 32-64 Bit ## RHEL/CentOS 6 32-Bit ## # wget http://download.fedoraproject.org/pub/epel/6/i386/epel......

小城听雨
2018/06/26
0
0
在 vm 下安装的 redHat 5 中文显示(方块乱码)及小企鹅输入法

在 vm 下安装的 redHat 5 默认安装成的英文, 现在将它改成中文并安装 小企鹅输入法 一.将redHat 5 设置成中文环境(解决方块乱码问题) 1.从网上下载 fonts-chinese-3.02-9.6.el5.noarch.rpm ...

globalHawk
2013/01/08
920
0
RedHat 7编译升级OpenSSL、OpenSSH及NTP

上篇分享了RedHat 6.5编译安装升级OpenSSL、OpenSSH及NTP的博文,这篇来测试一下RedHat 7.2编译安装升级OpenSSL、OpenSSH及NTP,主要过程基本一致,不过openssh略有不同。上篇博文请见:RedHa...

jianlong1990
2018/06/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

面试官,Java8 JVM内存结构变了,永久代到元空间

在文章《JVM之内存结构详解》中我们描述了Java7以前的JVM内存结构,但在Java8和以后版本中JVM的内存结构慢慢发生了变化。作为面试官如果你还不知道,那么面试过程中是不是有些露怯?作为面试...

程序新视界
5分钟前
5
0
读书笔记:深入理解ES6 (八)

第八章 迭代器(Iterator)与生成器(Generator) 第1节 循环语句的问题   在循环、多重循环中,通过变量来跟踪数组索引的行为容易导致程序出错。迭代器的出现旨在消除这种复杂性,并减少循...

张森ZS
5分钟前
2
0
Elasticsearch 实战(一) - 简介

官腔 Elasticsearch,分布式,高性能,高可用,可伸缩的搜索和分析系统 基本等于没说,咱们慢慢看 1 概述 百度:我们比如说想找寻任何的信息的时候,就会上百度去搜索一下,比如说找一部自己喜...

JavaEdge
10分钟前
3
0
【jQuery基础学习】11 jQuery性能简单优化

本文转载于:专业的前端网站➦【jQuery基础学习】11 jQuery性能简单优化 关于性能优化 合适的选择器 $("#id")会直接调用底层方法,所以这是最快的。如果这样不能直接找到,也可以用find方法继...

前端老手
18分钟前
4
0
重磅发布 | 全球首个云原生应用标准定义与架构模型 OAM 正式开源

导读:2019 年 10 月 17 日,阿里巴巴合伙人、阿里云智能基础产品事业部总经理蒋江伟(花名:小邪)在 Qcon 上海重磅宣布,阿里云与微软联合推出开放应用模型 Open Application Model (OAM...

阿里云官方博客
21分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部