Scrapy框架不会?来让我带你了解了解

🌵爬虫之Scrapy系列文章

🌱欢迎点赞评论学习交流~

🌴各位看官多多关注哦😘~ 

目录

🍉Scrapy框架的介绍

🌴Scrapy框架的模块

🌴Scrapy模块的运作

🍉创建项目 

 🌴前期准备

🌱环境安装

 🌱项目搭建

 🌱创建爬虫

 🌱项目介绍 

🍉setting设置 

🍉执行爬虫 

🍄 运行爬虫

🍄指令运行

🍉demo 

🌵配置存储结构

🌵配置spider

🌵存储文件编写

🍉结束


🍉Scrapy框架的介绍

        Scrapy是用纯Python实现一个为了爬取网站数据、提取结构性数据而编写的应用框架,用途非广常泛,用户只需要定制开发几个模块就可以轻松的实现一个爬虫,用来抓取网页内容以及各种图片,非常之方便。尽管Scrapy 原本是设计用来屏幕抓取(更精确的说,是网络抓取),但它也可以用来访问 API来提取数据。

🌴Scrapy框架的模块

 这张图片完整的概括了Scrapy框架是如何运作的以及它包括的五大组件分别为:Spiders(爬虫)Scheduler(调度器)Downloader(下载器)ItemPipeline(管道),当然还有最最核心的ScrapyEngine(引擎)。哈哈,图片看起来好像挺难的,其实原理挺简单的。首先,Scrapy框架的入口是Spiders(爬虫),通过爬虫我们能够获取到网址链接之类的,之后把获取的结果通过引擎给调度器大哥,大哥通过整理把结果给了下载器小弟,这可不是给它下载的哦,而是小弟向服务器发送请求获取相应的响应,下载器通过引擎将响应再还给爬虫,然后爬虫将我们需要获取的内容给到管道下载,含有二级网址链接再循环以上步骤。听我这么一讲是不是更迷糊了呢?下面更有详细的步骤😉。

🌴Scrapy模块的运作

Scrapy 框架运行流程:

🍉创建项目 

 🌴前期准备

我们在了解完Scrapy框架各个模块以及其运作流程后,我们要开始创建项目了~

🌱环境安装

查找历史版本:https://pypi.org/project/Scrapy/#history

pip install scrapy

 🌱项目搭建

win + R 打开命令行窗口输入以下命令

scrapy startproject xxxx

 🌱创建爬虫

xxxx 为你创建项目的路径

cd xxxx

scrapy genspider 爬虫名称 网站域名

 🌱项目介绍 

输入完以上命令后程序自动在指定目录生成项目文件,恭喜你,到此你已经完成了项目的一半了。

说明:

  • scrapy.cfg:它是 Scrapy 项目的配置文件,其内定义了项目的配置文件路径、部署相关信息等内容。
  • items.py:它定义 Item 数据结构,所有的 Item 的定义都可以放这里。
  • pipelines.py:它定义 Item Pipeline 的实现,所有的 Item Pipeline 的实现都可以放这里。
  • settings.py:它定义项目的全局配置。
  • middlewares.py:它定义 Spider Middlewares Downloader Middlewares 的实现。
  • spiders:其内包含一个个 Spider 的实现,每个 Spider 都有一个文件。

🍉setting设置 

记录了几条需要修改的设置 

 # 遵循robots.txt中的爬虫规则,一般需要手动改为True

ROBOTSTXT_OBEY = True
# 相同网站两个请求之间的间隔时间,默认是 0s 。相当于 time.sleep()
DOWNLOAD_DELAY = 3
# 禁用 cookie ,默认是 True ,可用可不用
COOKIES_ENABLED = False
# 请求头设置,这里基本上不用
DEFAULT_REQUEST_HEADERS = {
  'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
 'Accept-Language': 'en',
}
# 配置启用 Pipeline 用来持久化数据,这个在下载数据时要开启
ITEM_PIPELINES = {
'ScrapyDemo.pipelines.ScrapydemoPipeline' : 300 ,
}

🍉执行爬虫 

🍄 运行爬虫

在命令行窗口输入以下命令:

scrapy crawl xxxx  

🍄指令运行

新建一个py文件写入:

from scrapy import cmdline
cmdline.execute("scrapy crawl xxxx".split())

🍉demo 

🌵配置存储结构

import scrapy 

class demoItem(scrapy.Item):

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

🌵配置spider

class CrawlSpider(scrapy.Spider): 
    name = 'crawl' 
    allowed_domains = ['baidu.com'] 
    start_urls = ['https://www.baidu.com'] 

    def parse(self, response): 
        item = items.demoItem() 
        item['content'] = response.text 
        yield item

🌵存储文件编写

class demoPipeline: 
    def open_spider(self, spider):        
        self.file = open('baidu.html', 'w',encoding='utf-8')  
    def process_item(self, item, spider): 
        self.file.write(item['content']) 
        return item
    def close_spider(self, spider): 
        self.file.close()

🍉结束

  • 14
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 26
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

颜语凌

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

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

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

打赏作者

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

抵扣说明:

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

余额充值