『scrapy爬虫』01. 安装环境创建示例项目(保姆级图文)

48 篇文章 16 订阅
14 篇文章 2 订阅
本文详细介绍了Scrapy爬虫框架的组件结构,包括引擎、调度器、下载器、爬虫、项目管道和中间件的作用,以及如何安装库、创建项目和配置。还展示了如何在PyCharm中管理和开发Scrapy项目。
摘要由CSDN通过智能技术生成


欢迎关注 『scrapy爬虫』 专栏,持续更新中
欢迎关注 『scrapy爬虫』 专栏,持续更新中

框架结构

初学者一般从爬虫(Spider)开始,这里编写我们的爬虫代码.

Scrapy 框架的主要组成部分和结构:

  • 引擎(Engine):引擎负责处理整个系统的数据流控制,触发事件,以及执行整个爬虫流程。
  • 调度器(Scheduler):调度器负责接收引擎发送过来的请求,并按照一定策略将请求入队,等待引擎处理。
  • 下载器(Downloader):下载器负责下载网页内容,并将下载得到的页面数据返回给引擎,通常使用异步方式实现并支持多线程下载。
  • 爬虫(Spider):爬虫定义了如何爬取特定网站(或特定页面),包括如何从网页中提取结构化数据,Scrapy 中可以定义多个爬虫。
  • 项目管道(Item Pipelines):项目管道负责处理爬取的数据,可以进行数据清洗、验证、存储等操作,可以定义多个管道,数据会依次经过这些管道处理。
  • 中间件(Middleware):中间件是在引擎和下载器之间的钩子框架,可以在请求和响应的不同阶段对它们进行拦截和处理,比如可以用来添加自定义的 User-Agent、代理、重试机制等。
  • 项目配置文件(Settings):项目配置文件包含了 Scrapy 爬虫的各种配置选项,如爬取速度、并发数、延迟时间、日志级别等。

1. 安装库

  • 建议用国内源,因为库包比较大,国外源下载慢.
pip install scrapy
  • 检查版本号,看看一些常用命令
scrapy -version
  • 常用命令如下:
    bench:用于运行快速基准测试,可以帮助你评估 Scrapy 的性能表现。

fetch:使用 Scrapy 下载器获取特定 URL 的内容,并将内容输出到标准输出或指定文件中。

genspider:根据预定义的模板生成新的爬虫文件,简化了创建新爬虫的过程。

runspider:运行一个独立的爬虫,无需创建一个完整的项目,适用于一次性的简单爬取任务。

settings:获取当前 Scrapy 项目的设置值,可以用来查看当前项目的配置信息。

shell:启动交互式的 Scrapy 控制台,方便开发者在其中测试和调试爬虫代码。

startproject:创建一个新的 Scrapy 项目,包括必要的目录结构和文件模板。

version:打印当前安装的 Scrapy 版本信息。

view:在浏览器中打开指定 URL,可以帮助开发者查看网页在 Scrapy 中的抓取结果。

在这里插入图片描述


2. 创建项目

  • 如图所示创建项目成功,确保你找的到当前的文件夹,建议你cd到一个方便的文件夹后再进行下面的操作.
scrapy startproject 英文项目名
scrapy startproject myscrapy 

在这里插入图片描述

  • 创建指定爬虫
根据前面的提示cd到我们刚刚新建的项目文件夹
cd myscrapy

然后新建指定网页的爬虫项目

scrapy genspider 爬虫文件名 爬虫的url
scrapy genspider baidu baidu.com

在这里插入图片描述
myscrapy\myscrapy\spiders目录下可以看到我们刚刚新建的爬虫
在这里插入图片描述
其内容 start_urls = ["http://baidu.com/"]对应前面的url

import scrapy


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

    def parse(self, response):
        pass


3. 项目结构与开发环境

在pycharm中打开项目,并新建venv的虚拟环境,虚拟环境中再次安装scrapy库,个人建议用虚拟环境可以保证项目的相对独立性.
在这里插入图片描述
最后的项目结构

scrapy.cfg
project/
    __init__.py
    items.py
    pipelines.py
    settings.py
    middlewares.py 
    spiders/
        __init__.py
        spider1.py
        spider2.py
        ...

在这里插入图片描述

import scrapy

class BaiduSpider(scrapy.Spider):
    name = "baidu"
    allowed_domains = ["baidu.com"]# 限制或允许访问的域名列表
    start_urls = ["http://baidu.com/"] # 起始url

    def parse(self, response):
        pass


总结

大家喜欢的话,给个👍,点个关注!给大家分享更多计算机专业学生的求学之路!

版权声明:

发现你走远了@mzh原创作品,转载必须标注原文链接

Copyright 2024 mzh

Crated:2024-3-1

欢迎关注 『scrapy爬虫』 专栏,持续更新中
欢迎关注 『scrapy爬虫』 专栏,持续更新中
『未完待续』


  • 25
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

发现你走远了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值