欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Scrapy框架——安装Scrapy

程序员文章站 2022-05-07 15:17:44
...

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"}
]