scrapy模块的基础使用

news2024/12/23 22:33:51

scrapy模块是爬虫工作者最常用的一个模块之一,因它有许多好用的模板,和丰富的中间件,深受欢迎。

一,scrapy的安装

可以通过pypi的指引进行安装

在终端内输入以下代码:

pip install scrapy

二,项目的建立

安装程序后,创建自己项目,在终端中输入以下代码

scrapy startproject yourprojectname

运行完成后,在终端中会提示你执行以下两个命令

需要依次执行

cd yourprojectname

创建你的爬虫模板 

scrapy genspider name name.com

name --根目录的名字, name.com --()域名

创建好之后,在pycharm中可以看到以下的目录:

在name.py中编写爬虫项目,name.py文件中会自带以下代码

import scrapy

class NameSpider(scapy.Spider):
    name = "name"
    start_urls = [url, url....]

    def parse(self, response):
        pass

其中name为爬取数据的名字,自定义。

此外还要加入要爬取的链接列表。

pase方法为爬取数据的逻辑

使用命令来启动爬虫程序(在终端运行以下代码)

scapy crawl name

也可新建一个文件,运行文件来启动爬虫程序,代码如下:

from scrapy import cmdline

cmdline.execute("scapy crawl name".split())

split()方法将其分割,因为在cmdline中是一个数组

也可将爬虫日志写入在文件中,避免输出在终端时,因终端可显示的长度有限,显示不完全。代码如下:

from scrapy import cmdline

cmdline.execute("scapy crawl name --logfile name.log".split())

爬取好的数据可以通过items.py文件中进行配置

将想要的数据进行保存

import scrapy


class HaodaifuItem(scrapy.Item):
    # define the fields for your item here like:
    # name = scrapy.Field()

存储的项目通过进入piplines.py文件中(pipelines.py在settings中默认不开启,需要手动开启 )

# Configure item pipelines
# See https://docs.scrapy.org/en/latest/topics/item-pipeline.html
# 项目管道
ITEM_PIPELINES = {
   "xxx.pipelines.Pipeline": 300,
    "xxx.pipelines.xxxPipeline":300,
}

pipslines.py文件中的项目名:数值

数值越小,优先级越高,越先启动,数值相同他们的启动顺序将是随机的,无法确定哪一个会先启动。在这种情况下,scrapy将根据实际情况来决定启动顺序。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1831176.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【学习笔记】MySQL(Ⅱ)

MySQL(Ⅱ) 7、 进阶篇 —— 存储引擎 7.1、MySQL 体系结构 7.2、存储引擎 7.2.1 InnoDB 7.2.2 MyISAM 7.2.3 Memory 7.2.4 InnoDB、MyISAM、Memory 的比较8、 拓展篇 —— 在 Linux 上安装数据库9、进阶篇 —— 索引 …

SmartEDA、Multisim、Proteus大比拼:电路设计王者之争?

在电路设计领域,SmartEDA、Multisim和Proteus无疑是三款备受瞩目的软件工具。它们各自拥有独特的功能和优势,但在这场电路设计王者的竞争中,谁才是真正的领跑者?让我们深入探究这三款软件的异同,揭示它们各自的魅力所在…

rabbitMQ的简单使用

rabbitMQ的介绍 RabbitMQ是一个开源的消息代理和队列服务器,主要用于在不同的应用程序之间传递消息。它基于AMQP(Advanced Message Queuing Protocol)协议,提供了一种可靠的方式来处理异步通信。RabbitMQ使用Erlang语言编写&…

【VUE3学习手札】

VUE3学习手札 vue3成长之路学习笔记 文章目录 VUE3学习手札前言一、markRaw1.1 代码示例1.2 应用场景1.3 拓展(toRaw)1.4 实际应用 前言 主要用于自己的一个备忘,对知识点的查缺补漏 一、markRaw 将一个对象标记为不可被转为代理。返回该对象…

北京大学数字普惠金融指数(2011-2022年)

北京大学数字普惠金融指数(2011-2022年),包含省市县三级数据 数据年限:省级、地级市(2011-2022年);区县(2014-2022年) 数据格式:excel、pdf 数据来源&#xf…

java-数据结构与算法-02-数据结构-01-数组

文章目录 1. 概述2. 动态数组3. 二维数组4. 局部性原理5. 越界检查6. 习题 1. 概述 定义 在计算机科学中,数组是由一组元素(值或变量)组成的数据结构,每个元素有至少一个索引或键来标识 In computer science, an array is a dat…

subversion

subversion Install # CentOS安装Subversion yum install subversion mkdir /var/svn/ systemctl restart svnserve# Docker安装Subversion(参考:https://github.com/garethflowers/docker-svn-server) docker run \--name my-svn-server \…

气体传感器的工作原理探究

气体传感器的工作原理主要基于其内部的感应元件与目标气体之间的相互作用。不同的气体传感器可能采用不同的工作原理,但其核心目的都是将气体的浓度或成分转化为可测量和处理的电信号。 PID气体传感器 以常见的电化学式气体传感器为例,其工作原理涉及气体…

T113 Tina5.0 添加板级支持包

文章目录 环境介绍Tina5.0 SDK说明添加buildroot板级支持包添加板级支持包修改配置文件验证 添加openwrt板级支持包添加板级支持包修改配置文件验证其它 总结 环境介绍 硬件:韦东山T113工业板 软件:全志Tina 5.0 Tina5.0 SDK说明 需要明确的是&#x…

深度解析量水堰:结构、分类与设计要点

量水堰,作为水工测量中的关键设施,其精确度和多样性对于水位和流量的测量至关重要。其工作原理基于通过堰顶断面上的进水口,将水位引导至堰体内部,从而实现水位和流量的平衡。量水堰通常采用高强度、耐久的材料构建,如…

算法:分治(快排)题目练习

目录 题目一:颜色分类 题目二:排序数组 题目三:数组中的第k个最大元素 题目四:库存管理III 题目一:颜色分类 给定一个包含红色、白色和蓝色、共 n 个元素的数组 nums ,原地对它们进行排序,…

Linux_应用篇(19) V4L2 摄像头应用编程

ALPHA/Mini I.MX6U 开发板配套支持多种不同的摄像头,包括正点原子的 ov5640(500W 像素)、ov2640(200W 像素)以及 ov7725(不带 FIFO、 30W 像素)这三款摄像头,在开发板出厂系统上&…

Jupyter Notebook简介

目录 1.概述 2.诞生背景 3.历史版本 4.安装 5.卸载 6.如何使用 7.菜单和菜单项 8.示例 9.未来展望 10.总结 1.概述 Jupyter Notebook是一种基于Web的交互式计算环境,主要用于数据分析、数据科学、机器学习以及探索性编程等领域。允许用户在单个文档中编写…

3.华为trunk和access接口配置

目的:PC1 连通三层交换机LSW1 LSW1配置 [Huawei]vlan batch 10 [Huawei]interface Vlanif 10 [Huawei-Vlanif10]ip address 10.10.10.10 24 [Huawei]int g0/0/1 [Huawei-GigabitEthernet0/0/1]port link-type trunk [Huawei-GigabitEthernet0/0/1]port trunk allow…

嵌入式操作系统_2.嵌入式操作系统的一般架构

1.嵌入式操作系统的概念 嵌入式操作系统通常由硬件驱动程序、调式代理、操作系统内核、文件系统和可配置组件等功能组成,并为应用软件提供标准的API(Application Programming Interface)接口服务。 2.一般嵌入式操作系统的体系结构 从嵌入…

C#|Maui|BootstrapBlazor|Bootstrap Blazor 组件库改模板 | Bootstrap Blazor 组件库改布局,该怎么改?

先copy一个项目下来:Bootstrap Blazor 组件库 一套基于 Bootstrap 和 Blazor 的企业级组件库 发现不是很满足我的需求,我要把右下角的admin移动到左边去,该怎么移动? 先改代码 点进去到Layout.razor 文档,改成如下&am…

“专业敏捷教练课程” 8月31-9月1日 · CSP-SM认证周末班【晋升高阶享多重福利】

点击标题阅读: 《数字时代下敏捷教练专业技能CSP-SM框架解析》 为什么“模块化分时段”单元教学? ☆ 有脑科学研究资料揭示: 成人学习者持续3.5小时已经达到极限,新模式教学,给学习者留有一些时间和空间去消化吸收,…

清华停招土木,新增地球科学引热议

早在今年2月26日,多个自媒体平台上有人发布消息称“清华大学停止土木工程等专业招生”,引发广泛关注。 在清华大学的官网可以看到下图的公告。 可以看到,清华大学停招土木工程等专业,新增地球系统科学等专业。这一举措引起全网热…

收银系统源码-连锁店收银系统,支持二次开发

千呼新零售2.0系统是零售行业连锁店一体化收银系统,包括线下收银线上商城连锁店管理ERP管理商品管理供应商管理会员营销等功能为一体,线上线下数据全部打通。 适用于商超、便利店、水果、生鲜、母婴、服装、零食、百货等连锁店使用。 一、收银端 支持Wi…

vim 的 map+noremap

经常在 vim 的配置文件中,看到对于改键的设置。 他们的区别主要有两种 1 用于哪种模式。 2 是否用于递归。