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中的数学运算操作符使用进阶
Jun 20 Python
pandas apply 函数 实现多进程的示例讲解
Apr 20 Python
pandas数据处理基础之筛选指定行或者指定列的数据
May 03 Python
Django 静态文件配置过程详解
Jul 23 Python
Python 类的私有属性和私有方法实例分析
Sep 29 Python
numpy:找到指定元素的索引示例
Nov 26 Python
pytorch 实现打印模型的参数值
Dec 30 Python
Python 支持向量机分类器的实现
Jan 15 Python
TensorFlow实现自定义Op方式
Feb 04 Python
Python小整数对象池和字符串intern实例解析
Mar 21 Python
Python偏函数Partial function使用方法实例详解
Jun 17 Python
Python docutils文档编译过程方法解析
Jun 23 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
删除及到期域名的查看(抢域名必备哦)
2008/05/14 PHP
php使用sql数据库 获取字段问题介绍
2013/08/12 PHP
简单解决微信文章图片防盗链问题
2016/12/17 PHP
PhpStorm配置Xdebug调试的方法步骤
2019/02/02 PHP
科讯商业版中用到的ajax空间与分页函数
2007/09/02 Javascript
js关闭模态窗口刷新父页面或跳转页面
2012/12/13 Javascript
javascript实现完美拖拽效果
2015/05/06 Javascript
jQuery UI仿淘宝搜索下拉列表功能
2017/01/10 Javascript
JS中SetTimeout和SetInterval使用初探
2017/03/23 Javascript
JS中的Replace()传入函数时的用法详解
2017/09/11 Javascript
基于node.js express mvc轻量级框架实践
2017/09/14 Javascript
jQuery Validate插件ajax方式验证输入值的实例
2017/12/21 jQuery
vue2.0 自定义 饼状图 (Echarts)组件的方法
2018/03/02 Javascript
基于Vue中点击组件外关闭组件的实现方法
2018/03/06 Javascript
vue移动端项目缓存问题实践记录
2018/10/29 Javascript
创建echart多个联动的示例代码
2018/11/23 Javascript
解决layui的table插件无法多层级获取json数据的问题
2019/09/19 Javascript
vue项目中极验验证的使用代码示例
2019/12/03 Javascript
[56:20]LGD vs VP Supermajor 败者组决赛 BO3 第三场 6.10
2018/07/04 DOTA
[06:07]DOTA2-DPC中国联赛 正赛 Ehome vs VG 选手采访
2021/03/11 DOTA
Python的Django框架中settings文件的部署建议
2015/05/30 Python
python dict.get()和dict['key']的区别详解
2016/06/30 Python
Python中内置的日志模块logging用法详解
2016/07/12 Python
解决PySide+Python子线程更新UI线程的问题
2019/01/11 Python
python3 kubernetes api的使用示例
2021/01/12 Python
M1芯片安装python3.9.1的实现
2021/02/02 Python
萌新的HTML5 入门指南
2020/11/06 HTML / CSS
Michael Kors澳大利亚官网:世界知名的奢侈饰品和成衣设计师
2020/02/13 全球购物
Sahajan美国:阿育吠陀护肤品牌
2021/01/09 全球购物
游戏商店:Eneba
2020/04/25 全球购物
初级软件工程师面试题 Junior Software Engineer Interview
2015/02/15 面试题
综合实践教学反思
2014/01/31 职场文书
党支部群众路线整改措施思想汇报
2014/10/10 职场文书
幼儿园母亲节活动总结
2015/02/10 职场文书
Python Flask请求扩展与中间件相关知识总结
2021/06/11 Python
Python使用Beautiful Soup(BS4)库解析HTML和XML
2022/06/05 Python