Scrapy 是采用Python 开发的一个快速可扩展的抓取WEB 站点内容的爬虫框架。
Scrapy,Python开发的一个快速,高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试。
Scrapy吸引人的地方在于它是一个框架,任何人都可以根据需求方便的修改。它也提供了多种类型爬虫的基类,如BaseSpider、sitemap爬虫等,最新版本又提供了web2.0爬虫的支持
scrapy提供一个工具来生成项目,生成的项目中预置了一些文件,用户需要在这些文件中添加自己的代码;但是依赖的第三方库是真多;

git clone https://github.com/scrapy/scrapy.git
或者
wget https://github.com/scrapy/scrapy/archive/0.14.zip
(不断 有版本更新 )

一、
1、 yum 安装依赖库;

yum install gcc gcc-c++ mysql mysql-server mysql-devel libffi libxml2 libxml2-devel libxslt libxslt-devel libxslt1-devel ruby

2、Python-2.7.6.tgz

Python2. 以上版本;
(示例使用2. 和3. 以上print格式不同; 如3.0以上python,下载第三方依赖库时看下版本支不支持python2.;
以下有些第三方库需要做出setup.py更改才能install )
wget http://www.python.org/ftp/python/2.7.6/Python-2.7.6.tgz
./configure --prefix=/usr/local/python
make &&make install
mv /usr/bin/python /usr/bin/python_old
ln -s /usr/local/python/bin/python2. /usr/bin/python
python -V

3、pip-9.0.1.tar.gz

pip python包管理工具;
wget https://pypi.python.org/packages/11/b6/abcb525026a4be042b486df43905d6893fb04f05aac21c32c638e939e447/pip-9.0.1.tar.gz#md5=35f01da33009719497f01a4ba69d63c9
tar -xf pip-9.0..tar.gz
cd pip
python setup.py build
python setup.py install

4、setuptools-11.3.tar.gz
setuptools是PythonEnterpriseApplicationKit(PEAK)的一个副项目,它是一组Python的distutilsde工具的增强工具(适用于Python2.3.5以上的版本,64位平台则适用于Python2.4以上的版本),可以让程序员更方便的创建和发布 Python 包,特别是那些对其它包具有依赖性的状况;setuptools 模块;来构建,安装,升级和卸载Python包;( setuptools版本11.3就行;版本太高依赖更多 )
python下的setuptools带有一个easy_install的工具,在安装python的每三方模块、工具时很有用,也很方便。安装setuptools前先安装pip;

wget https://pypi.python.org/packages/34/a9/65ef401499e6878b3c67c473ecfd8803eacf274b03316ec8f2e86116708d/setuptools-11.3.tar.gz
tar -xf setuptools-11.3.tar.gz
cd setuptools
python setup.py build
python setup.py install

5、zope.interface-4.1.1.tar.gz
Python 支持多继承,但是不支持接口,zope.inteface 是其三方的接口实现库,在twisted中有使用;

wget https://pypi.python.org/packages/a2/af/c4a17a2ab696c84c304f7c6c66236ee0ea019cf79852af32c7d3f89e0b8e/zope.interface-4.1.1.tar.gz#md5=edcd5f719c5eb2e18894c4d06e29b6c6
tar -xf zope.interface-4.1..tar.gz
cd zope.interface/
python setup.py install

6、Twisted-12.1.0.tar.bz2

Twisted是用Python实现的基于事件驱动的网络引擎框架;
wget https://twistedmatrix.com/Releases/Twisted/12.1/Twisted-12.1.0.tar.bz2
tar -xf Twisted-12.1..tar.bz2
cd Twisted
python setup.py build
python setup.py install

7、six-1.10.0.tar.gz
顾名思义 包装python2 和python3 的差异;

wget https://pypi.python.org/packages/b3/b2/238e2590826bfdd113244a40d9d3eb26918bd798fc187e2360a8367068db/six-1.10.0.tar.gz#md5=34eed507548117b2ab523ab14b2f8b55
tar -xf six-1.10..tar.gz
mv six-1.10./ six
cd six/
python setup.py build
python setup.py install

8、w3lib-1.17.0.tar.gz
w3lib模块,这个包用来移除一些多余的html标签;

wget https://pypi.python.org/packages/ac/b6/91ae356d48dd1d48732967eb79b2e41be4b2493b4e43a89be57b1f3be37d/w3lib-1.17.0.tar.gz#md5=03f4d6160208c547e4c31a63486b9516
tar -xf w3lib-1.17..tar.gz
python setup.py build
python setup.py install

9、MySQL-python-1.2.5.zip
MySQLdb是Python流行的MySQL数据库服务器接口;(因为抓取过程中需要mysql数据库来支撑)

wget https://pypi.python.org/packages/a5/e9/51b544da85a36a68debe7a7091f068d802fc515a3a202652828c73453cad/MySQL-python-1.2.5.zip#md5=654f75b302db6ed8dc5a898c625e030c
unizp MySQL-python-1.2..zip
cd MySQL-python/
python setup.py build
python setup.py install

二、
第三方依赖库;
会示安装需要的插件;然后在 python setup.py install
模块可以使用pip install ;也也可以直接下载包install
( 缺少的依赖模块 按提示版本的需求安装就行;版本太高有可能插件更多哦 )

1、lxml-3.4.4.tar.gz
lxml的XML工具包是一个Python的C库libxml2和libxslt结合;(还可以yum安装)

wget https://pypi.python.org/packages/63/c7/4f2a2a4ad6c6fa99b14be6b3c1cece9142e2d915aa7c43c908677afc8fa4/lxml-3.4.4.tar.gz#md5=a9a65972afc173ec7a39c585f4eea69c
tar -xf lxml-3.4..tar.gz
cd scrapy/
python setup.py build
python setup.py install

2、pyOpenSSL-17.0.0.tar.gz
OpenSSL库

wget https://pypi.python.org/packages/9f/32/80fe4fddeb731b7766cd09fe0b2032a91b43dae655e216792af2a6ae3190/pyOpenSSL-17.0.0.tar.gz#md5=0704ca95106960375cfe78259453094a
tar -xf pyOpenSSL-17.0..tar.gz
cd pyOpenSSL/
python setup.py build
python setup.py install

3、cffi-1.10.0.tar.gz
Python的外部函数接口;基于C声明;

wget https://pypi.python.org/packages/5b/b9/790f8eafcdab455bcd3bd908161f802c9ce5adbf702a83aa7712fcc345b7/cffi-1.10.0.tar.gz#md5=2b5fa41182ed0edaf929a789e602a070
tar -xf cffi-1.10..tar.gz
cd cffi/
python setup.py build
python setup.py install

4、cryptography-1.8.1.tar.gz
cryptography 密码学是一个包,它为Python开发人员提供加密配方和原语

wget https://pypi.python.org/packages/ec/5f/d5bc241d06665eed93cd8d3aa7198024ce7833af7a67f6dc92df94e00588/cryptography-1.8.1.tar.gz#md5=9f28a9c141995cd2300d0976b4fac3fb
tar -xf cryptography-1.8..tar.gz
cd cryptography/
python setup.py build
python setup.py install

5、pyparsing-1.5.7.tar.gz
pyparsing模块来创建和执行简单的语法的一种替代方法,与传统的lex/yacc的方法,或使用正则表达式。的pyparsing模块提供了一个类,客户端代码使用Python代码直接构造语法库。

wget https://pypi.python.org/packages/6f/2c/47457771c02a8ff0f302b695e094ec309e30452232bd79198ee94fda689f/pyparsing-1.5.7.tar.gz#md5=9be0fcdcc595199c646ab317c1d9a709
tar -xf pyparsing-1.5..tar.gz
cd pyparsing
python setup.py build
python setup.py install

6、idna-2.5.tar.gz
IDNA 模块,自带Python标准库;国际化域名(IDNA)中的应用

wget https://pypi.python.org/packages/d8/82/28a51052215014efc07feac7330ed758702fc0581347098a81699b5281cb/idna-2.5.tar.gz#md5=fc1d992bef73e8824db411bb5d21f012
tar -xf idna-2.5.tar.gz
cd idna
python setup.py build
python setup.py install

7、pycparser-2.17.tar.gz
pycparser 模块 语法分析器 是使用PLY模块分析c语言语法的模块;可以很容易地集成到需要解析C源代码的应用;

wget https://pypi.python.org/packages/be/64/1bb257ffb17d01f4a38d7ce686809a736837ad4371bcc5c42ba7a715c3ac/pycparser-2.17.tar.gz#md5=ca98dcb50bc1276f230118f6af5a40c7
tar -xf pycparser-2.17.tar.gz
cd pycparser/
python setup.py build
python setup.py install

8、ipaddress-1.0.18.tar.gz
ipaddress模块和类的功能使它简单处理IP地址相关的各种任务,包括检查是否有两台主机在同一子网,在一个特定的子网的所有主机迭代,检查是否一个字符串代表一个有效的IP地址或网络的定义;

wget https://pypi.python.org/packages/4e/13/774faf38b445d0b3a844b65747175b2e0500164b7c28d78e34987a5bfe06/ipaddress-1.0.18.tar.gz#md5=310c2dfd64eb6f0df44aa8c59f2334a7
tar -xf ipaddress-1.0..tar.gz
cd ipaddress
python setup.py build
python setup.py install

9、enum34-1.1.6.tar.gz
ENUM类型 在Python 模块自定义类型模块

wget https://pypi.python.org/packages/bf/3e/31d502c25302814a7c2f1d3959d2a3b3f78e509002ba91aea64993936876/enum34-1.1.6.tar.gz#md5=5f13a0841a61f7fc295c514490d120d0
tar -xf enum34-1.1..tar.gz
cd /usr/local/enum34/
python setup.py install

10、packaging-16.8.tar.gz
Python包的核心打包模块

wget https://pypi.python.org/packages/c6/70/bb32913de251017e266c5114d0a645f262fb10ebc9bf6de894966d124e35/packaging-16.8.tar.gz#md5=53895cdca04ecff80b54128e475b5d3b
tar -xf packaging-16.8.tar.gz
cd packaging/
python setup.py build
python setup.py install

11、asn1crypto-0.11.1.tar.gz
asn1crypto 模块;一个快速,用于解析和序列化ASN纯Python库

wget https://pypi.python.org/packages/97/a4/bf830df887ea2312d3114ea6f01c8ff0af3fe4d6fd088402bd99b5515746/asn1crypto-0.11.1.tar.gz#md5=d3c24181d33a355e389b6fbece7e24cf
tar -xf asn1crypto-0.11..tar.gz
cd asn1crypto-0.11.
python setup.py build
python setup.py install

三、
完善第三方库最后切换到scrapy 目录下进行安装;

cd scrapy/
python setup.py build
python setup.py install [root@hk]# whereis scrapy
scrapy: /usr/local/scrapy
cp -rp /usr/local/scrapy/bin/scrapy /usr/bin
# scrapy version
Scrapy 0.14.

示例 爬一个站点信息

1、创建一个项目

scrapy startproject my_project
[root@Bigdata]# tree

.
└── my_project
├── my_project
│ ├── __init__.py
│ ├── items.py
│ ├── pipelines.py
│ ├── settings.py
│ └── spiders
│ └── __init__.py
└── scrapy.cfg
1、scrapy.cfg 爬虫执行的入口文件; 输入scrapy crawl 爬虫开始工作时首先会读取该文件中的配置内容。
2、my_project/items.py 定义爬虫抓取下来的数据、诗意何种方式存储信息的;
比如爬虫抓取的结果可以是标题字符串 也可以是结构化的JSON对象,或者一张图片对应的字节流;
3、items 就是定义结构化对象中的属性。
4、my_project/pipelines.py 定义了信息的保存方式;
爬虫抓取的内容存放在内存对象中;可以自定义在写入文件 存入DB 或者直接在控制台输出;
5、Scrapy 会采用管道(pipeline)方式,把内存中的信息依次交给每个管道文件。
6、my_project/settings.py 这个文件是保存了爬虫运行时所依赖的配置信息。

Python - Scrapy 框架的更多相关文章

  1. Python -- Scrapy 框架简单介绍(Scrapy 安装及项目创建)

    Python -- Scrapy 框架简单介绍 最近在学习python 爬虫,先后了解学习urllib.urllib2.requests等,后来发现爬虫也有很多框架,而推荐学习最多就是Scrapy框架 ...

  2. [Python][Scrapy 框架] Python3 Scrapy的安装

    1.方法(只介绍 pip 方式安装) PS.不清楚 pip(easy_install) 可以百度或留言. cmd命令: (直接可以 pip,而不用跳转到 pip.exe目录下,是因为把所在目录加入 P ...

  3. python scrapy框架爬虫遇到301

    1.什么是状态码301 301 Moved Permanently(永久重定向) 被请求的资源已永久移动到新位置,并且将来任何对此资源的引用都应该使用本响应返回的若干个URI之一.如果可能,拥有链接编 ...

  4. Python scrapy框架

    Scrapy Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架. 其可以应用在数据挖掘,信息处理或存储历史数据等一系列的程序中.其最初是为了页面抓取 (更确切来说, 网络抓取 )所设 ...

  5. 我的第一篇博文,Python+scrapy框架安装。

    自己用Python脚本写爬虫有一段时日了,也抓了不少网页,有的网页信息两多,一个脚本用exe跑了两个多月,数据还在进行中.但是总觉得这样抓效率有点低,问题也是多多的,很早就知道了这个框架好用,今天终于 ...

  6. 利用python scrapy 框架抓取豆瓣小组数据

    因为最近在找房子在豆瓣小组-上海租房上找,发现搜索困难,于是想利用爬虫将数据抓取. 顺便熟悉一下Python. 这边有scrapy 入门教程出处:http://www.cnblogs.com/txw1 ...

  7. (19)python scrapy框架

    安装scrapy pycharm 建个纯python工程 settings里 环境变量设置 C:\Python27;C:\Python27\Scripts; 下载win32api https://so ...

  8. Python scrapy框架爬取瓜子二手车信息数据

    项目实施依赖: python,scrapy ,fiddler scrapy安装依赖的包: 可以到https://www.lfd.uci.edu/~gohlke/pythonlibs/  下载 pywi ...

  9. python scrapy框架爬取豆瓣

    刚刚学了一下,还不是很明白.随手记录. 在piplines.py文件中 将爬到的数据 放到json中 class DoubanmoviePipelin2json(object):#打开文件 open_ ...

随机推荐

  1. 洛谷P2698 [USACO12MAR]花盆Flowerpot

    P2698 [USACO12MAR]花盆Flowerpot 题目描述 Farmer John has been having trouble making his plants grow, and n ...

  2. python----面对对象三大特征2

    多态 什么是多态?多态指的是一类事物有多种形态,例如一个动物类,狗和猫都通过继承动物类来得来,这样我们可以将狗.猫称作动物类的另一种形态. 在java中也存在多态,java中的多态是用来解决在一个函数 ...

  3. BZOJ1901Zju2112 Dynamic Rankings——树状数组套主席树

    题目描述 给定一个含有n个数的序列a[1],a[2],a[3]……a[n],程序必须回答这样的询问:对于给定的i,j,k,在a[i],a[i+1 ],a[i+2]……a[j]中第k小的数是多少(1≤k ...

  4. [ctsc2018] 混合果汁 【可持久化线段树】【二分答案】

    题目分析 首先考虑到最小值最大,二分答案.假设答案为k,显然这满足单调性.如果某个k使得这个情况下选不出.那么比k大的一定也选不出,所以二分答案. 接着我们可以贪心,当我们确认了k以后,一定会优先选费 ...

  5. P2464 [SDOI2008]郁闷的小J

    题目描述 小J是国家图书馆的一位图书管理员,他的工作是管理一个巨大的书架.虽然他很能吃苦耐劳,但是由于这个书架十分巨大,所以他的工作效率总是很低,以致他面临着被解雇的危险,这也正是他所郁闷的. 具体说 ...

  6. 自学Linux Shell15.1-处理信号

    点击返回 自学Linux命令行与Shell脚本之路 15.1-处理信号 Linux使用信号与系统上运行的进程进行通信.可以使用这些信号控制Shell脚本的运行,只需要让shell脚本在接收到来自Lin ...

  7. 自学Linux Shell16.1-函数概念

    点击返回 自学Linux命令行与Shell脚本之路 16.1-函数概念 编写比较复杂的shell脚本时,完成具体任务的代码可能需要重复使用.bash shell提供满足这种要求的特性.函数是被赋予名称 ...

  8. pyEcharts

    例子: from pyecharts import Line line = Line("我的第一个图表", "这里是副标题",width="800px ...

  9. Python--Django学习笔记2

    本篇介绍Django中的Model层. 首先介绍sqlite3,这是在当前版本中Django默认使用的数据库,sqlite也是Android中所使用的数据库. 接着介绍最最最常见的MySQL数据库如何 ...

  10. A1039. Course List for Student

    Zhejiang University has 40000 students and provides 2500 courses. Now given the student name lists o ...