Scrapy基础入门学习

目录

一、Scrapy是什么?

二、Scrapy五大基本构成

三、整体架构图

四、安装步骤

1.下载并安装

2.项目建立&爬虫命令

四、日志等级与日志保存

五、导出为json或scv格式

六、参考文献


一、Scrapy是什么?

Scrapy是Python开发的一个快速、高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试。

二、Scrapy五大基本构成

Scrapy框架主要由五大组件组成,它们分别是调度器(Scheduler)、下载器(Downloader)、爬虫(Spider)和实体管道(Item Pipeline)、Scrapy引擎(Scrapy Engine)。下面我们分别介绍各个组件的作用。

(1)、调度器(Scheduler):

调度器,说白了把它假设成为一个URL(抓取网页的网址或者说是链接)的优先队列,由它来决定下一个要抓取的网址是什么,同时去除重复的网址(不做无用功)。用户可以自己的需求定制调度器。

(2)、下载器(Downloader):

下载器,是所有组件中负担最大的,它用于高速地下载网络上的资源。Scrapy的下载器代码不会太复杂,但效率高,主要的原因是Scrapy下载器是建立在twisted这个高效的异步模型上的(其实整个框架都在建立在这个模型上的)。

(3)、 爬虫(Spider):

爬虫,是用户最关心的部份。用户定制自己的爬虫(通过定制正则表达式等语法),用于从特定的网页中提取自己需要的信息,即所谓的实体(Item)。 用户也可以从中提取出链接,让Scrapy继续抓取下一个页面。

(4)、 实体管道(Item Pipeline):

实体管道,用于处理爬虫(spider)提取的实体。主要的功能是持久化实体、验证实体的有效性、清除不需要的信息。

(5)、Scrapy引擎(Scrapy Engine):

Scrapy引擎是整个框架的核心.它用来控制调试器、下载器、爬虫。实际上,引擎相当于计算机的CPU,它控制着整个流程。

三、整体架构图

四、安装步骤

1.下载并安装

pip install scrapy

2.项目建立&爬虫命令

scrapy startproject 项目名

scrapy genspider 爬虫名 域名

scrapy crawl 爬虫名
复制代码

示例演示:

scrapy startproject scrapy2209

cd scrapy2209

scrapy genspider baidu www.baidu.com

复制代码

创建后目录大致页如下

|-ProjectName              #项目文件夹

   |-ProjectName           #项目目录

      |-items.py               #定义数据结构

      |-middlewares.py    #中间件

      |-pipelines.py          #数据处理

      |-settings.py            #全局配置

      |-spiders               

          |-_ init _.py       #爬虫文件

          |-baidu.py

   |-scrapy.cfg               #项目基本配置文件

import scrapy


class BaiduSpider(scrapy.Spider):
    name = 'baidu'
    allowed_domains = ['www.baidu.com']
    start_urls = ['http://www.baidu.com/']

    def parse(self, response):
        tile=response.xpath('//html/head/title/text()')
        print(tile)
复制代码

打开一个终端cmd,输入scrapy crawl baidu(爬虫名),就可以看到一大堆输出信息,而其中就包括我们要的内容

有时候会出现403错误:

[scrapy.spidermiddlewares.httperror] INFO: Ignoring response <403 beijing.8684.cn/x_35b1e697>: HTTP status code is not handled or not allowed

那是因为——被屏蔽了,我们来伪装一下,在settings.py文件里加上USER_AGENT:

出来了!!

四、日志等级与日志保存

在setting.py里面可以设置日志的等级与日志存放的路径

相关变量

LOG_LEVEL= ""

LOG_FILE="日志名.log"

日志等级分为

1.DEBUG 调试信息

2.INFO 一般信息

3.WARNING 警告

4.ERROR 普通错误

5.CRITICAL 严重错误

如果设置

LOG_LEVEL="WARNING",就只会WARNING等级之下的ERROR和CRITICAL

默认等级是1

五、导出为json或scv格式

执行爬虫文件时添加-o选项即可

scrapy crawl 项目名 -o *.csv

scrapy crawl 项目名 -o *.json

对于json文件,在setting.js文件里添加,设置编码格式,否则会乱码:

FEED_EXPORT_ENCODING='utf-8'

示例:

from scrapy import cmdline

cmdline.execute('scrapy crawl baidu -o baidu.csv'.split())
复制代码

六、参考文献

python scrapy 报错 DEBUG: Ignoring response 403 - 时光不改 - 博客园 (cnblogs.com) Scrapy爬虫框架,入门案例(非常详细)_JJH的创世纪-DevPress官方社区 (csdn.net)

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值