Scrapy安装,创建Scrapy项目,启动Scrapy爬虫

news2025/2/22 3:19:35

Scrapy安装,创建Scrapy项目,启动Scrapy爬虫

    • 1. 安装 Python
    • 2. 安装 Scrapy
    • 3. 验证安装
    • 4. 创建 Scrapy 项目
    • 5. 启动爬虫
      • 5.1 示例
  • 总结

Scrapy 的安装方式比较简单,下面是基于 Python 环境的安装流程:

1. 安装 Python

首先,你需要安装 Python 3.6 以上版本(推荐使用最新稳定版)。你可以通过官网 Python.org 下载和安装。

2025最详细 Windows 系统安装 Python 教程

2. 安装 Scrapy

Scrapy 推荐使用 pip 来进行安装。可以在命令行中使用以下命令:

pip install scrapy

pip 会自动安装 Scrapy 和它所依赖的所有必要包,包括 Twisted 和 lxml 等库。
如果你在 Windows 上遇到安装 Twisted 时的问题,可以考虑安装 Windows 版本的 Twisted:

pip install twisted

或者,你也可以使用 Anaconda 来创建一个虚拟环境,并在其中安装 Scrapy。这样可以避免与其他项目的依赖冲突。

conda create -n scrapy-env python=3.8
conda activate scrapy-env
conda install -c conda-forge scrapy

3. 验证安装

安装完成后,可以通过以下命令来验证 Scrapy 是否安装成功:

scrapy --version

如果安装成功,应该能看到 Scrapy 的版本信息。
在这里插入图片描述
一旦安装完成,你就可以开始创建一个新的 Scrapy 项目。

4. 创建 Scrapy 项目

我喜欢先创建一个总项目来进行统一管理,如爬虫相关的,crawler_project
在这里插入图片描述
对应的本地文件目录
在这里插入图片描述
在命令行中进入你想要存放项目的文件夹,并运行以下命令:

scrapy startproject 项目名称(不能以数字开头,不能携带汉字)

在这里插入图片描述
这将会创建一个新的 Scrapy 项目目录结构,类似于:

myproject/
    scrapy.cfg
    myproject/
        __init__.py
        items.py				# 定义数据结构的地方,是一个继承自scrapy.Item的类
        middlewares.py			# 中间件,代理
        pipelines.py			# 管道文件,里面只有一个类,用于处理下载数据的后续处理,默认优先级是300,值越小优先级越高(1~1000)
        settings.py				# 配置文件,比如是否遵守robots协议,User-Agent定义等
        spiders/				# 文件夹,存储的是爬虫文件 
            __init__.py
            自定义的爬虫文件		# 由我们自己创建编写的核心功能文件			

在这里插入图片描述

5. 启动爬虫

接下来,你可以进入 spiders 文件夹,创建你的第一个爬虫文件(创建 Scrapy 项目也会输出对应的提示)。
在这里插入图片描述
使用 cd 进入 spiders 文件夹(注意目录使用\进行分隔),使用以下命令来生成一个爬虫:

scrapy genspider example example.com

这将生成一个名为 example 的爬虫,爬取 example.com 网站的数据。
参数解释:

  • example:爬虫的名字,用于运行爬虫的时候,命令参数使用的值,对应爬虫文件中的 name = "example" 参数,注意不要和文件夹重名,否则会创建失败,提示 Cannot create a spider with the same name as your project
  • example.com:要爬取的网站的域名,会根据这个值自动生成爬虫文件中的 allowed_domains = ["example.com"]start_urls = ["https://example.com"]

编辑爬虫文件,定义数据提取规则,然后可以运行爬虫:

scrapy crawl example

爬虫会开始执行,抓取并输出结果。

5.1 示例

以爬取百度为例

scrapy genspider baidu baidu.com

在这里插入图片描述
在这里插入图片描述
输出结束标志

import scrapy


class BaiduSpider(scrapy.Spider):
    # 爬虫的名字     用于运行爬虫的时候,命令参数使用的值
    name = "baidu"
    # 允许访问的域名
    allowed_domains = ["baidu.com"]
    # 起始的 url 地址    指的是第一次要访问的域名
    start_urls = ["https://baidu.com"]

    # 执行了 start_urls 之后执行的方法    方法中的 response 就是返回的那个对象
    def parse(self, response):
        print("爬虫结束")

注释掉robots协议
在这里插入图片描述
执行爬虫,查看是否正常执行

scrapy crawl baidu

在这里插入图片描述

总结

Scrapy 是一个功能强大且高效的 Python 爬虫框架,适合各种规模的网页数据抓取任务。无论是单个网页抓取,还是大规模的网站爬取,Scrapy 都能提供优秀的性能和易于扩展的架构。如果你正在寻找一种可靠的工具来进行数据采集、分析或自动化任务,Scrapy 无疑是一个非常好的选择。

希望这篇博客能帮助你快速上手 Scrapy,开始自己的爬虫之旅!

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

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

相关文章

C++项目:高并发内存池_上

目录 1. 项目介绍 2. 内存池概念 2.1 池化技术 2.2 内存池和内存碎片 2.3 细看malloc 3. 定长内存池的实现 ObjectPool.hpp 4. 高并发内存池框架 5. thread cache测试 5.1 thread cache框架 5.2 ConcurrentAlloc.hpp 6. central cache测试 6.1 central cache框架 …

手机控制电脑远程关机

远程看看软件兼容iOS和Android设备,该软件除了能通过电脑远程关闭另一台电脑外,您还可以通过它在手机上远程关闭公司的电脑。您可以按照以下步骤进行操作以实现电脑远程关机: 步骤1.在手机应用商店搜索“远程看看”进行软件安装,…

IO模型与NIO基础--NIO网络传输选择器--字符编码

放进NIO体系进行网络编程的工作流程: Selector的创建 通过调用Selector.open()方法创建一个Selector,如下: Selector selector Selector.open(); 向Selector注册通道 通过Channel.register()方法来实现, 注意:Chan…

【亚马逊开发者账号02】终审问题SA+review_Pre-review+Doc.xlsx

1.终审问题 你好感谢您在此过程中的回复和协作。所有想要构建具有受限 SP-API 角色的公开可用应用程序的开发人员都必须与我们的解决方案架构师团队一起完成架构审核。 这将需要详细说明应用程序的数据流、个人身份信息 (PII) 的数据保护控制&#xff0…

c++标准io与线程,互斥锁

封装一个 File 类, 用有私有成员 File* fp 实现以下功能 File f "文件名" 要求打开该文件 f.write(string str) 要求将str数据写入文件中 string str f.read(int size) 从文件中读取最多size个字节, 并将读取到的数据返回 析构函数 #…

在高流量下保持WordPress网站的稳定和高效运行

随着流量的不断增加,网站的稳定和高效运行变得越来越重要,特别是使用WordPress搭建的网站。流量过高时,网站加载可能会变慢,甚至崩溃,直接影响用户体验和网站正常运营。因此,我们需要采取一些有效的措施&am…

Cython学习笔记1:利用Cython加速Python运行速度

Cython学习笔记1:利用Cython加速Python运行速度 CythonCython 的核心特点:利用Cython加速Python运行速度1. Cython加速Python运行速度原理2. 不使用Cython3. 使用Cython加速(1)使用pip安装 cython 和 setuptools 库(2&…

web的分离不分离:前后端分离与不分离全面分析

让我们一起走向未来 🎓作者简介:全栈领域优质创作者 🌐个人主页:百锦再新空间代码工作室 📞工作室:新空间代码工作室(提供各种软件服务) 💌个人邮箱:[1504566…

记录一个ES分词器不生效的解决过程

问题背景 商城项目,其中商品查询检索使用的是ES, 但存在某些商品查询不到的问题 例如:某商品名包含AA_BBB这样的关键词,但是搜索"AA"不能查询到该商品,但是将商品名修改为AA BBB后就能查询到了. 怀疑是分词的问题,但看代码,在创建ES索引时在对应字段上也定义了分词器…

高性能内存对象缓存Memcached详细实验操作

目录 前提准备: cache1,2: 客户端cache-api(一定得是LAMP环境) memcache实现主主复制以及高可用(基于以上完成) cache1,2: memcachekeepalived(基于以上完成) cache1,2: 前提准备: 1. 准备三台cent…

css之display:grid布局改块级元素布局

1.问题: div是块级元素,一个div元素占一行,但是,今天测试样式时,总是会有两个div并占一行,很困惑,结果发现是app这个样式 在main.css里 #app样式布局在main.ts里被应用 2.原因以及样式分析 im…

推荐一个github star45k+进阶的java项目及知识的网站

mall是github上star 45k的一个java项目 mall项目是一套电商系统,包括前台商城系统及后台管理系统,基于SpringBootMyBatis实现,采用Docker容器化部署。 前台商城系统包含首页门户、商品推荐、商品搜索、商品展示、购物车、订单流程、会员中心…

第2章 深入理解Thread构造函数

Thread的构造函数。 2.1 线程的命名 在构造一个Thread时可以为其命名。 2.1.1 线程的默认命名 下面构造函数中,并没有为线程命名。 Thread() Thread(Runnable target) Thread(ThreadGroup group, Runnable target)打开源码会看到 public Thread(Runnable targe…

node 使用 Redis 缓存

缓存是什么? 高并发下,一个项目最先出问题的,并不是程序本身,而是数据库最先承受不住。 在数据库上我们可以做很多优化,例如优化 SQL 语句,优化索引,如果数据量大了,还可以分库、分表…

PMBOK第7版整体架构全面详解

1. 引言 7月1日对于项目管理从业者和研究者而言,是个非凡意义的一个时间,这一天,翘首以待的《 项 目管理知识体系指南 》(PMBOK)第七版终于发布了。 总体而言,PMBOK第七版集百家之所长,成一…

【Scrapy】Scrapy教程6——提取数据

前一小节我们拿到了页面的数据,那页面中那么多内容,我们想要其中的部分内容,该如何获取呢?这就需要对我们下载到的数据进行解析,提取出来想要的数据,这节就讲讲如何提取数据。 引入 我们编辑保存下来的shouye.html文件看下,发现这是什么鬼,全是如下图的代码。 没错…

golang panic信息捕获

背景 我们的日志接入阿里云sls平台,但是,日志是以json的格式存储在阿里云sls平台上,程序中产生的error,info等日志都可以实现以json的格式打印。但是,golang程序中产生的panic信息本身不是以json的格式输出,这就导致p…

一周学会Flask3 Python Web开发-http响应状态码

锋哥原创的Flask3 Python Web开发 Flask3视频教程: 2025版 Flask3 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili 在Flask程序中,客户端发出的请求触发相应的视图函数,获取返回值会作为响应的主体,最后生成…

goland无法debug项目

1、其实个原因是因为正在使用的Delve调试器版本太旧,无法兼容当前的Go语言版本1.2。Delve是Go语言的一个调试工具,用于提供源码级别的调试功能。Go语言每隔一段时间会发布新版本,而相应的调试器Delve也可能会更新以提供新的特性或修复已知问题…

Python VsCode DeepSeek接入

Python VsCode DeepSeek接入 创建API key 首先进入DeepSeek官网,https://www.deepseek.com/ 点击左侧“API Keys”,创建API key,输出名称为“AI” 点击“创建",将API key保存,复制在其它地方。 在VsCode中下载…