Python-Scrapy框架

Scrapy 是採用Python 開發的一個快速可擴展的抓取WEB 站點內容的爬蟲框架。
  Scrapy,Python開發的一個快速,高層次的屏幕抓取和web抓取框架,用於抓取web站點並從頁面中提取結構化的數據。Scrapy用途普遍,能夠用於數據挖掘、監測和自動化測試。
  Scrapy吸引人的地方在於它是一個框架,任何人均可以根據需求方便的修改。它也提供了多種類型爬蟲的基類,如BaseSpider、sitemap爬蟲等,最新版本又提供了web2.0爬蟲的支持。
  scrapy提供一個工具來生成項目,生成的項目中預置了一些文件,用戶須要在這些文件中添加本身的代碼;可是依賴的第三方庫是真多。html

 

git clone https://github.com/scrapy/scrapy.git
或者;
wget https://github.com/scrapy/scrapy/archive/0.14.zip

 

1、
一、 yum 安裝依賴庫;python

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

 

二、Python-2.7.6.tgz
Python2.7 以上版本;
(示例使用2.7 和3.6 以上print格式不一樣; 如3.0以上python,下載第三方依賴庫時看下版本支不支持python2.7;
如下有些第三方庫須要作出setup.py更改才能install )mysql

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.7 /usr/bin/python
python -V

 

三、pip-9.0.1.tar.gzc++

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

 

四、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的每三方模塊、工具時頗有用,也很方便。git

安裝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

 

五、zope.interface-4.1.1.tar.gz
Python 支持多繼承,可是不支持接口,zope.inteface 是其三方的接口實現庫,在twisted中有使用;github

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

 

六、Twisted-12.1.0.tar.bz2
Twisted是用Python實現的基於事件驅動的網絡引擎框架;web

wget https://twistedmatrix.com/Releases/Twisted/12.1/Twisted-12.1.0.tar.bz2
tar -xf Twisted-12.1.0.tar.bz2 
cd Twisted
python setup.py build
python setup.py install

 

七、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.0.tar.gz 
mv six-1.10.0/ six
cd six/
python setup.py build
python setup.py install

 

八、w3lib-1.17.0.tar.gz
w3lib模塊,這個包用來移除一些多餘的html標籤;sql

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

 

九、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.5.zip 
cd MySQL-python/
python setup.py build
python setup.py install

 

2、
第三方依賴庫;
會示安裝須要的插件;而後在 python setup.py install
模塊可使用pip install ;也也能夠直接下載包install
( 缺乏的依賴模塊 按提示版本的需求安裝就行;版本過高有可能插件更多哦 )

一、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.4.tar.gz 
cd scrapy/
python setup.py build
python setup.py install

 

二、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.0.tar.gz 
cd pyOpenSSL/
python setup.py build
python setup.py install

 

三、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.0.tar.gz 
cd cffi/
python setup.py build
python setup.py install

 

四、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.1.tar.gz 
cd cryptography/
python setup.py build
python setup.py install

 


五、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.7.tar.gz 
cd pyparsing
python setup.py build
python setup.py install

 


六、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

 



七、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

 

八、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.18.tar.gz 
cd ipaddress
python setup.py build
python setup.py install

 

九、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.6.tar.gz 
cd /usr/local/enum34/
python setup.py install

 

十、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

 

十一、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.1.tar.gz 
cd asn1crypto-0.11.1
python setup.py build
python setup.py install

 

3、
完善第三方庫最後切換到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.4


【 示例 爬一個站點信息 】

一、建立一個項目

scrapy startproject my_project
[root@Bigdata]# tree
.
└── my_project
├── my_project
│   ├── __init__.py
│   ├── items.py
│   ├── pipelines.py
│   ├── settings.py
│   └── spiders
│   └── __init__.py
└── scrapy.cfg

 

scrapy.cfg 爬蟲執行的入口文件; 輸入scrapy crawl 爬蟲開始工做時首先會讀取該文件中的配置內容。my_project/items.py 定義爬蟲抓取下來的數據、詩意何種方式存儲信息的; 好比爬蟲抓取的結果能夠是標題字符串 也能夠是結構化的JSON對象,或者一張圖片對應的字節流;items 就是定義結構化對象中的屬性。my_project/pipelines.py 定義了信息的保存方式; 爬蟲抓取的內容存放在內存對象中;能夠自定義在寫入文件 存入DB 或者直接在控制檯輸出; Scrapy 會採用管道(pipeline)方式,把內存中的信息依次交給每一個管道文件。my_project/settings.py 這個文件是保存了爬蟲運行時所依賴的配置信息。

相關文章
相關標籤/搜索