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,它控制着整个流程。

三、整体架构图

Scrapy基础入门学习

四、安装步骤

1.下载并安装

pip install scrapy

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 #项目基本配置文件

Scrapy基础入门学习
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(爬虫名),就可以看到一大堆输出信息,而其中就包括我们要的内容

Scrapy基础入门学习

有时候会出现403错误:

[scrapy.spidermiddlewares.httperror] INFO: Ignoring response

Scrapy基础入门学习

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

Scrapy基础入门学习

出来了!!

Scrapy基础入门学习

四、日志等级与日志保存

在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)

Original: https://blog.csdn.net/m0_57376367/article/details/127003687
Author: SoRA数据家
Title: Scrapy基础入门学习

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/792175/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球