一、爬虫框架scarpy简介scrapy 是一个快速的高层次的屏幕抓取和网页爬虫框架,爬取网站,从网站页面得到结构化的数据,它有着广泛的用途,从数据挖掘到监测和自动测试,scrapy完全用python实现,完全开源,代码托管在github上,可运行在linux,windows,mac和bsd平台上,基于twisted的异步网络库来处理网络通讯,用户只需要定制开发几个模块就可以轻松的实现一个爬虫,用来抓取网页内容以及各种图片。
二、scrapy安装指南
我们的安装步骤假设你已经安装一下内容:python2.7lxmlopenssl,我们使用python的包管理工具pip或者easy_install来安装scrapy。pip的安装方式:
代码如下:
pip install scrapy
easy_install的安装方式:
代码如下:
easy_install scrapy
三、ubuntu平台上环境配置
1、python的包管理工具当前的包管理工具链是 easy_install/pip + distribute/setuptoolsdistutils : python 自带的基本安装工具, 适用于非常简单的应用场景; setuptools : 针对 distutils 做了大量扩展, 尤其是加入了包依赖机制. 在部分 python 子社区已然是事实上的标准;distribute : 由于 setuptools 开发进度缓慢, 不支持 python 3, 代码混乱, 一帮程序员另起炉灶, 重构代码, 增加功能, 希望能够取代 setuptools 并被接纳为官方标准库, 他们非常努力, 在很短的时间便让社区接受了 distribute;,setuptools / distribute 都只是扩展了 distutils;easy_install : setuptools 和 distribute 自带的安装脚本, 也就是一旦 setuptools 或 distribute 安装完毕, easy_install 也便可用. 最大的特点是自动查找 python 官方维护的包源 pypi , 安装第三方 python 包非常方便; 使用:pip : pip 的目标非常明确 – 取代 easy_install. easy_install 有很多不足: 安装事务是非原子操作, 只支持 svn, 没有提供卸载命令, 安装一系列包时需要写脚本; pip 解决了以上问题, 已俨然成为新的事实标准, virtualenv 与它已经成为一对好搭档;
安装过程:安装distribute
代码如下:
$ curl -o http://python-distribute.org/distribute_setup.py $ python distribute_setup.py
安装pip:
代码如下:
$ curl -o https://raw.github.com/pypa/pip/master/contrib/get-pip.py $ [sudo] python get-pip.py
2、scrapy的安装在windows平台上,可以通过包管理工具或者手动下载各种依赖的二进制包:pywin32,twisted,zope.interface,lxml,pyopenssl,在ubuntu9.10以后的版本上,官方推荐不用使用ubuntu提供的python-scrapy包,它们要么太老要么太慢,无法匹配最新的scrapy,解决方案是,使用官方的ubuntu packages,它提供了所有的依赖库,并且对于最新的bug提供持续的更新,稳定性更高,它们持续的从github仓库(master和stable branches)构建,scrapy在ubuntu9.10之后的版本上的安装方法如下:输入gpg密钥
代码如下:
sudo apt-key adv –keyserver hkp://keyserver.ubuntu.com:80 –recv 627220e7
创建/etc/apt/sources.list.d/scrapy.list 文件
代码如下:
echo ‘deb http://archive.scrapy.org/ubuntu scrapy main’ | sudo tee /etc/apt/sources.list.d/scrapy.list
更新包列表,安装scrapy版本,其中version用实际的版本代替,如scrapy-0.22
代码如下:
sudo apt-get update && sudo apt-get install scrapy-version
3、scrapy依赖库的安装ubuntu12.04下scrapy依赖库的安装importerror: no module named w3lib.http
代码如下:
pip install w3lib
importerror: no module named twisted
代码如下:
pip install twisted
importerror: no module named lxml.html
代码如下:
pip install lxml
解决:error: libxml/xmlversion.h: no such file or directory
代码如下:
apt-get install libxml2-dev libxslt-dev apt-get install python-lxml
解决:importerror: no module named cssselect
代码如下:
pip install cssselect
importerror: no module named openssl
代码如下:
pip install pyopenssl
4、定制自己的爬虫开发切换到文件目录,开启新的工程
代码如下:
scrapy startproject test