1. 程式人生 > >Scrapy框架——安裝Scrapy

Scrapy框架——安裝Scrapy

Scrapy框架—— 安裝Scrapy

   Scrapy 可以說是爬蟲界鼎鼎有名的框架。 它是一個重型的爬蟲框架,結合資料抓取,匯出,以及部分的資料清洗的功能。

本文針在python3.6的環境下來安裝scrapy

需求配置

  • sqlite依賴庫(centos下為sqlite-devel包)

   scrapy 框架的正常執行,你的 python3.6 版本需要編譯支援 sqlite ,

  • python3.6

  • Twisted

   scrapy 的非同步功能實現,需要 Twisted 的支援。 目前 scrapy 的最新版本需要 Twisted>13.0 版本, 而 pip3.6

, 所以我們需要從原始碼編譯。

安裝sqlite依賴庫

   如果你的 python3.6 已經編譯支援了 sqlite ,可以跳過這個步驟。

  1. 下載sqlite庫

    yum install sqlite-devel

編譯python3.6

  1. 下載python3.6原始碼

    cd /tmp
    curl -O Python-3.6.4.tgz  https://www.python.org/ftp/python/3.6.4/Python-3.6.4.tgz
  2. 編譯python3.6

    tar xvvf Python-3.6.4
    cd  Python-3.6.4
    ./configure
    make
    && make install

編譯Twisted

  1. 下載Twisted原始碼

    cd /tmp
    git clone https://github.com/twisted/twisted.git
  2. 編譯Twisted

    cd twisted/
    python3.6 setup.py install

安裝Scrapy

pip3 install scrapy

測試Scrapy是否正常工作

   這裡我們簡單的抓一下京東首頁的分類列表來測試一下 scrapy 是否正常工作。

scrapy genspider example www.jd.com //該命令會在當前目錄下生成一個example.py
檔案
//example.py
import scrapy


class ExampleSpider(scrapy.Spider):
    name = 'example'
    allowed_domains = ['www.jd.com']
    start_urls = ['http://www.jd.com/']

    def parse(self, response):
    category = response.xpath('//div[contains(@class,"navitems")]/ul/li/a/text()').extract();
    for cate in category:
        yield {'cate': cate}
    pass
scrapy runspider example.py -L INFO -o category.json 
//該命令會執行example.py爬蟲指令碼,然後將抓取結果儲存到category.json
//category.json
[
{"cate": "\u79d2\u6740"},
{"cate": "\u4f18\u60e0\u5238"},
{"cate": "PLUS\u4f1a\u5458"},
{"cate": "\u95ea\u8d2d"},
{"cate": "\u62cd\u5356"},
{"cate": "\u4eac\u4e1c\u670d\u9970"},
{"cate": "\u4eac\u4e1c\u8d85\u5e02"},
{"cate": "\u751f\u9c9c"},
{"cate": "\u5168\u7403\u8d2d"},
{"cate": "\u4eac\u4e1c\u91d1\u878d"}
]