scrapy框架

Posted 594504110python

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了scrapy框架相关的知识,希望对你有一定的参考价值。

1. 安装scrapy模块

1.
pip install wheel
安装这个模块是为安装twisted做准备, 因为安装twisted需要用到wheel
2.
下载twisted, 因为scrapy是基于twisted的异步非阻塞框架
https://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted
下载和python版本, 操作系统位数对应
3. 
安装twisted, 进入到下载的目录
pip install twisted
4.
pip install pywin32
5.
pip install scrapy

 

2. 创建一个scrapy项目

在终端中执行下面命令创建一个scrapy项目

D:OneDrive - hk sar baomin incPythonprojectReptileday06>scrapy startproject testDemo
New Scrapy project testDemo, using template directory c:\python36\lib\site-packages\scrapy\templates\project, created in:
    D:OneDrive - hk sar baomin incPythonprojectReptileday06	estDemo

You can start your first spider with:
    cd testDemo
    scrapy genspider example example.com

 

3. 创建一个scrapy爬虫

cd testDemo
D:OneDrive - hk sar baomin incPythonprojectReptileday06 estDemo>scrapy genspider test www.baidu.com Created spider test using template basic in module: testDemo.spiders.test

 

4. scrapy框架的目录结构

  scrapy.cfg
│
└─testDemo
    │  items.py    # item对象, 用于数据持久化数据传递
    │  middlewares.py    # 中间件文件
    │  pipelines.py    # 管道文件
    │  settings.py    # 配置文件__init__.py
    │
    ├─spiders    #具体的爬虫文件目录
    │  │  test.py    # 这是刚创建的爬虫文件
    │  │  __init__.py
    │  │
    │  └─__pycache____init__.cpython-36.pyc
    │
    └─__pycache__
            settings.cpython-36.pyc
            __init__.cpython-36.pyc

 

5. 爬虫文件

# -*- coding: utf-8 -*-
import scrapy


class TestSpider(scrapy.Spider):
    name = test  # 爬虫文件名称
    allowed_domains = [www.baidu.com]  # 允许爬取的域名
    start_urls = [http://www.baidu.com/]  # 起始URL列表

    def parse(self, response):
        """
        用于解析请求后得到的数据
        :param response: 服务器响应的数据
        :return: item对象, 用于持久化存储
        """
        # response.text     # 获取响应的字符串
        # response.url  # 请求的URL
        # response.xpath()  # 使用xpath对数据进行解析
        # response.meta  # 用作请求传参, time_out, proxy等参数都会放在这里
        pass

 

6. scrapy数据持久化

 

7. 启动爬虫程序

5. scrapy手动发送请求

6. scrapy运行流程(核心组件)

7. scrapy请求传参的用途

8. 如何提升scrapy的爬取效率

9. 基于UA池和ip代理池爬取数据

以上是关于scrapy框架的主要内容,如果未能解决你的问题,请参考以下文章

Python之Scrapy安装

走近代码之Python--爬虫框架Scrapy

Scrapy框架概述

爬虫框架Scrapy 之 --- scrapy文件

初识scrapy爬虫框架

Python Scrapy框架