Python爬虫框架Scrapy安装使用步骤


Posted in Python onApril 01, 2014

一、爬虫框架Scarpy简介
Scrapy 是一个快速的高层次的屏幕抓取和网页爬虫框架,爬取网站,从网站页面得到结构化的数据,它有着广泛的用途,从数据挖掘到监测和自动测试,Scrapy完全用Python实现,完全开源,代码托管在Github上,可运行在Linux,Windows,Mac和BSD平台上,基于Twisted的异步网络库来处理网络通讯,用户只需要定制开发几个模块就可以轻松的实现一个爬虫,用来抓取网页内容以及各种图片。

二、Scrapy安装指南

我们的安装步骤假设你已经安装一下内容:<1>Python2.7<2>lxml<3>OpenSSL,我们使用Python的包管理工具pip或者easy_install来安装Scrapy。
pip的安装方式:

pip install Scrapy

easy_install的安装方式:
easy_install Scrapy

三、Ubuntu平台上环境配置

1、python的包管理工具
当前的包管理工具链是 easy_install/pip + distribute/setuptools
distutils : 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之后的版本上的安装方法如下:
<1>输入GPG密钥

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 627220E7

<2>创建/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

<3>更新包列表,安装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

 

Python 相关文章推荐
Python标准模块--ContextManager上下文管理器的具体用法
Nov 27 Python
python利用OpenCV2实现人脸检测
Apr 16 Python
PyQt5基本控件使用详解:单选按钮、复选框、下拉框
Aug 05 Python
使用Python进行防病毒免杀解析
Dec 13 Python
Python3监控疫情的完整代码
Feb 20 Python
Python编程快速上手——Excel到CSV的转换程序案例分析
Feb 28 Python
k-means 聚类算法与Python实现代码
Jun 01 Python
Python sorted对list和dict排序
Jun 09 Python
Python脚本实现Zabbix多行日志监控过程解析
Aug 26 Python
python模块内置属性概念及实例
Feb 18 Python
Python3爬虫RedisDump的安装步骤
Feb 20 Python
解决pycharm 格式报错tabs和space不一致问题
Feb 26 Python
使用python绘制人人网好友关系图示例
Apr 01 #Python
python异步任务队列示例
Apr 01 #Python
用Python编程实现语音控制电脑
Apr 01 #Python
35个Python编程小技巧
Apr 01 #Python
ptyhon实现sitemap生成示例
Mar 30 #Python
python实现百度关键词排名查询
Mar 30 #Python
python获取网页状态码示例
Mar 30 #Python
You might like
php缓存技术详细总结
2013/08/07 PHP
PHP屏蔽过滤指定关键字的方法
2014/11/03 PHP
WampServer下安装多个版本的PHP、mysql、apache图文教程
2015/01/07 PHP
laradock环境docker-compose操作详解
2019/07/29 PHP
js tab效果的实现代码
2009/12/26 Javascript
jquery操作select option 的代码小结
2011/06/21 Javascript
ASP.NET jQuery 实例9  通过控件hyperlink实现返回顶部效果
2012/02/03 Javascript
javascript 进阶篇2 CSS XML学习
2012/03/14 Javascript
JS的Document属性和方法小结
2013/09/17 Javascript
jquery插件开发之实现google+圈子选择功能
2014/03/10 Javascript
AngularJS ng-template寄宿方式用法分析
2016/11/07 Javascript
基于Angularjs+mybatis实现二级评论系统(仿简书)
2017/02/13 Javascript
jQuery实现单击按钮遮罩弹出对话框效果(2)
2017/02/20 Javascript
vue-cli如何添加less 以及sass
2017/07/06 Javascript
vue复合组件实现注册表单功能
2017/11/06 Javascript
Vue退出登录时清空缓存的实现
2019/11/12 Javascript
vue表单验证之禁止input输入框输入空格
2020/12/03 Vue.js
uniapp开发小程序实现滑动页面控制元素的显示和隐藏效果
2020/12/10 Javascript
Python实现抓取百度搜索结果页的网站标题信息
2015/01/22 Python
Python实现国外赌场热门游戏Craps(双骰子)
2015/03/31 Python
Python开发的实用计算器完整实例
2017/05/10 Python
Python使用pandas处理CSV文件的实例讲解
2018/06/22 Python
详解python3中的真值测试
2018/08/13 Python
深入浅析Python 中 is 语法带来的误解
2019/05/07 Python
使用celery执行Django串行异步任务的方法步骤
2019/06/06 Python
Python二维数组实现求出3*3矩阵对角线元素的和示例
2019/11/29 Python
opencv python图像梯度实例详解
2020/02/04 Python
python求解汉诺塔游戏
2020/07/09 Python
转党组织关系介绍信
2014/01/08 职场文书
学习十八大宣传标语
2014/10/09 职场文书
职工年度考核评语
2014/12/31 职场文书
大学生个人年度总结范文
2015/02/15 职场文书
护林员个人总结
2015/03/04 职场文书
治理商业贿赂工作总结
2015/08/10 职场文书
Mysql数据库值的添加、修改、删除及清空操作实例
2021/06/20 MySQL
JavaScript 数组去重详解
2021/09/15 Javascript