爬虫入门(六)——Scrapy框架初探

网络爬虫 - scrapy入门(十三) scrapy入门知识 阅读详情

目录

 

1. Scrapy介绍

1.1 什么是Scrapy

1.2 爬虫的几种工作模式

2. Scrapy的工作流程

3.Scrapy入门

4. pipline使用


1. Scrapy介绍

1.1 什么是Scrapy

Scrapy是⼀个为了爬取⽹站数据,提取结构性数据⽽编写的应⽤框架,我们只需要实现少量的代码,就能够快速的抓取

  • 特点:Scrapy使⽤了Twisted异步⽹络框架,可以加快我们的下载速度(相同条件下用Scrapy爬取信息的速度要比直接爬取的速度快很多,有时几乎是瞬时的,具体例子在后续会给出)
  • 安装:pip install scrapy (因为Scrapy框架较大,直接安装速度慢且容易失败,因此可以采用换源安装,如:pip install scrapy -i https://pypi.douban.com/simple)


  异步和⾮阻塞的区别:

在这里插入图片描述

 

异步:调⽤在发出之后,这个调⽤就直接返回,不管有⽆结果

⾮阻塞:关注的是程序在等待调⽤结果时的状态,指在不能⽴刻得到结果之
前,该调⽤不会阻塞当前线程

 

1.2 爬虫的几种工作模式

在这里插入图片描述

 

 

 

2. Scrapy的工作流程

 

在这里插入图片描述

 

Scrapy engine(引擎)总指挥:负责数据和信号的在不同模块间的传递scrapy已经实现
Scheduler(调度器)⼀个队列,存放引擎发过来的request请求scrapy已经实现
Downloader(下载器)下载把引擎发过来的requests请求,并返回给引擎scrapy已经实现
Spider(爬⾍)处理引擎发来的response,提取数据,提取url,并交给引擎需要⼿写
Item Pipline(管道)
 
处理引擎传过来的数据,⽐如存储需要⼿写
Middlewares(下载中间件)可以⾃定义的下载扩展,⽐如设置代理
 
⼀般不⽤⼿写
           Spider
Middlewares(中间件)
可以⾃定义requests请求和进⾏response过滤⼀般不⽤⼿写

3.Scrapy入门

1. 创建一个爬虫项目

      在编译器或命令提示符中输入 scrapy startproject myspider(myspider是项目文件夹名称,可自定义)

2. 生成一个爬虫

      首先进入myspider文件夹中:终端输入cd myspider

      然后输入命令 scrapy genspider douban douban.com(douban是设置的爬虫文件名称,后面是要爬取的网址域名,这里以豆瓣网为例)

3.提取数据

       完善spider,前面我们说spider的作用是处理引擎发来的response,提取数据,提取url,并交给引擎,需要我们手动写入。可以利用xpath,css,bs4等

4.保存数据

       在pipeline中保存数据

5.在命令中运行爬虫

       与一般爬虫不同的是,使用scrapy来运行爬虫不能直接在编译器中点击运行,而是在终端输入:

       scrapy crawl douban(douban是爬虫文件的名称,自定义)

6.在编译器中运行爬虫

      如果一定要在编译器直接运行爬虫也不是没有办法,我们可以新建一个py文件,在里面写入:  

from scrapy import cmdline

cmdline.execute("scrapy crawl douban".split())  # 同上,douban是爬虫的名称

#也可写为 cmdline.excute(['scrapy','crawl','douban'])

4. pipline使用

创建myspider时会在myspider文件夹中生成spiders文件夹(生成的douban.py就在其中)以及spipline.py文件、pipline.py文件、middlewares.py文件等。上面提到保存数据是在pipline.py文件中执行的。

在运行pipline.py之前,我们还需要在settings.py中找到如下所示代码,将其打开(原本处于注释状态):

从pipeline的字典形可以看出来,pipeline可以有多个,⽽且确实pipeline能够
定义多个
为什么需要多个pipeline:
       1. 可能会有多个spider,不同的pipeline处理不同的item的内容
       2. ⼀个spider的内容可以要做不同的操作,⽐如存⼊不同的数据库中
注意:
       1. pipeline的权重越⼩优先级越⾼(假设我们再加入'dbspider.pipelines.DbspiderPipeline':301,那么按照优先级就会先执行mySpider中的spider)
       2. pipeline中process_item⽅法名不能修改为其他的名称(其实也是可以修改的,但并不建议这么做)

 

以上是对Scrapy框架的简单介绍,通过对上述内容的理解可以帮助我们简单的实现运用Scrapy来爬取信息的目的。然而仅仅是这样还不足以体现Scrapy框架的强大功能,后续将继续对Scrapy框架做拓展和实例

有兴趣可以参考Scrapy的中文文档:http://scrapy-chs.readthedocs.io/zh_CN/1.0/intro/overview.html

官方文档也在此给出:https://docs.scrapy.org/en/latest/

python爬虫入门笔记:用scrapy爬豆瓣 本文希望达到以下目标: 简要介绍Scarpy使用Scarpy抓取豆瓣电影 我们正式讲scrapy框架爬虫,并用豆瓣来试试手,url:http://movie.douban.com/top250 首先先要回答一个问题。 问:把网站装进爬虫里,总共分几步? 答案很简单,四步: 新建项目 (Project):新建一个新的爬虫项目明确目标(Items):明确你想要抓取的 阅读详情

相关推荐

【愚公系列】《Python网络爬虫从入门到精通》049-了解Scrapy爬虫框架

大家好,欢迎来到《Python网络爬虫从入门到精通》系列教程的第48篇文章。经过前面几十篇的学习,我们已经掌握了使用 requests、BeautifulSoup、Selenium 等工具进行数据抓取的基本方法。然而,随着项目的复杂度提升,这些工具在面对大型、高并发、高可维护性的爬虫任务时,往往力不从心。这时候,专业的爬虫框架——Scrapy,就该登场了。Scrapy 是一个由 Python 编写的、功能强大的异步爬虫框架,它具备高性能、模块化、易扩展等诸多优点,被广泛应用于各种数据采集任务中。

愚公智库 10万+

蜘蛛侠-scrapy框架

1.下载方式 widows ,打开一个cmd,输入pip install scrapy(必须安装python环境) 2. 新建一个项目 scrapy startproject 项目名 3.自动生成一个爬取百度的py文件 scrapy genspider baidu www.baidu.com spiders下的baidu.py是scrapy自动为我们生成的 4. 项目的配置文件settings.py # Scrapy settings for myfirstPj p...

一夜白头催人泪 2万+

网络爬虫:Scrapy爬虫框架

介绍了Scrapy爬虫框架的原理和基本使用方式

Jingmin Wei's Blog 2996

Scrapy爬虫框架,入门案例(非常详细)

Scrapy,Python开发的一个快速、高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试. 其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的, 后台也应用在获取API所返回的数据(例如 Amazon Associates Web Services ) 或者通用的网络爬虫. Scrapy吸引人的地...

ck784101777的博客 21万+

Scrapy (网络爬虫框架)入门

一.Scrapy 简介:Scrapy是用纯Python实现一个为了爬取网站数据、提取结构性数据而编写的应用框架,Scrapy 使用了 Twisted['twɪstɪd](其主要对手是Tornado)异步网络框架来处理网络通讯,可以加快我们的下载速度,不用自己去实现异步框架,并且包含了各种中间件接口,可以灵活的完成各种需求。二.Scrapy框架1.框架图绿色线是数据流向2.框架图讲解:功能讲解:Sc...

qq_42281826的博客 3977

Python 网络爬虫入门与实战

网络爬虫(Web Crawler)是自动访问网络并提取信息的程序。它可以模拟人类用户在浏览器中的行为,访问网页、抓取数据并存储到本地或数据库中。网络爬虫在信息检索、数据挖掘、搜索引擎等领域有广泛应用。Scrapy 是一个强大的爬虫框架,支持异步处理和数据存储。它适合大型爬虫项目,可以高效抓取和解析数据。yield item通过本文的学习,您应该对 Python 网络爬虫有了全面的了解。从基础的 Requests 库到高级的 Scrapy 框架,再到实战案例,涵盖了网络爬虫的方方面面。

985工科博士毕业,专攻定位、导航和滤波等算法研究。从业10年,主要使用MATLAB 2214

scrapy爬虫脚本启动

scrapy爬虫脚本气动 单一爬虫 if name == ‘main’: cmdline.execute(“scrapy crawl baidu”.split()) 多个爬虫 if name == ‘main’: # 通过方法 get_project_settings() 获取配置信息 process = CrawlerProcess(get_project_settings()) proce...

jiekaile的博客 702

【Python爬虫必备—>Scrapy框架快速入门篇——上】

【Python爬虫必备—>Scrapy框架快速入门篇——上】

孤寒者的博客 65万+

python用scrapy爬虫豆瓣_Python利用Scrapy框架爬取豆瓣电影示例

本文实例讲述了Python利用Scrapy框架爬取豆瓣电影。分享给大家供大家参考,具体如下:1、概念Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。 可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。通过Python包管理工具可以很便捷地对scrapy进行安装,如果在安装中报错提示缺少依赖的包,那就通过pip安装所缺的包pip install scrapyscra...

weixin_39745013的博客 1522

Springboot信息泄露以及heapdump的利用

努力是为了不平庸~安全有些时候是枯燥的,这一次,让我们先人一步,趣学渗透!

LiBai'S BLOG 3万+

服务器安全配置:二、本地安全策略设置

密码最长使⽤期限”设置为“90天”;“⽤可以还原的加密来存储密码”设置为“禁⽤”“复位账户锁定计数器”设置为15分钟,贴图这里是我自己设置的时间,15分钟也够用,具体看自己需要。”网络访问: 不允许 SAM 帐户和共享的匿名枚举“设置为“已启用””网络访问: 限制对命名管道和共享的匿名访问“设置为“已启用””网络访问: 不允许匿名枚举 SAM 帐户“设置为“已启用”“关机: 允许系统在未登录的情况下关闭”设置为“已禁用”(1)交互式登录:不显示最后的⽤户名”设置为“已启⽤”

weixin_48825672的博客 3136

爬虫框架 Scrapy 详解

一、Scrapy 基础知识 Scrapy 是适用于 Python 的一个快速、高层次的屏幕抓取和 web 抓取框架,用于抓取 web 站点并从页面中提取结构化的数据。Scrapy 用途广泛,可以用于数据挖掘、监测和自动化测试。 Scrapy 是一个框架,可以根据需求进行定制。它也提供了多种类型爬虫的基类,如 BaseSpider、sitemap 爬虫等,最新版本又提供了 web2.0 爬虫的支持。 1、Scrapy 基本模块 (1) 调度器(Scheduler) 调度器,说白了把它假设成为一个URL(抓

IT__learning的博客 1万+

rockchip rk3566 android11 网口log报错: DMA engine initialization failed

问题描述:上电初始化前将网口插入,然后上电初始化网口能够正常使用,且能够找到PHY,ifconfig 查看能够有eth0 产生,网口正常使用且能够热插拔,但上电初始化时,不插入网口,就会报DMA engine initialization failed 错误,DMA 初始化的时候出错了。 分析:一般产生这个问题可以认为是GMAC 的工作时钟出问题了。先测量时钟引脚是否有时钟,时钟频率以及幅度等指标是否正常,主要确认以下几个方面: 1.IOMUX 出错,检查时钟脚寄存器值是否正确。 2.时钟方向以及配置

qq_48709036的博客 2万+

Python开发从入门到精通:网络爬虫高级应用与Scrapy框架

本文介绍了Python网络爬虫的高级应用与Scrapy框架的核心内容。首先概述了网络爬虫的基本概念和工作流程,然后重点讲解了Scrapy框架的安装、项目创建和爬虫编写方法。针对动态网页爬取,介绍了Selenium的使用及其与Scrapy的结合。在反爬虫策略方面,详细说明了代理IP、User-Agent旋转和Cookies池等技术的实现。最后,通过Scrapy-Redis实现了分布式爬虫,并以豆瓣电影Top250为案例进行了实战演示。文章涵盖了网络爬虫开发的核心技术要点,包括框架使用、反反爬措施和分布式处理等

编程世界如山海,探索不止。 2万+

LayaBox CommandBuffer描边使用详细

项目需要使用LayaBox做一个给3D物体动态描边的一个功能,前前后后踩了一些坑算是把这个东西给做出来了把我改好的代码贴上,分享给大家。 (1)想要使用描边你的引擎版本必须 >=2.9.0 (2)你必须下载 Laya官方的BlurShader库才能使用这个功能,下载地址:https://github.com/layabox/layaair-demo/tree/master/h5/3d/ts/LayaAir3D_PostProcess/BlurShader 下载完之后把BlurShader放到自己项目的

小智队长 1735

水与光的奇妙“切割之舞”:水导激光切割技术探秘

水导激光切割技术的诞生,是材料加工领域不断追求高精度、高质量加工的成果。传统激光切割技术在加工过程中,材料会因瞬间高温而产生热变形、热影响区大以及切割面粗糙等问题,这些弊端在对一些高精度、热敏性材料的加工中尤为突出 ,迫切需要一种新的技术来克服这些难题。水导激光切割技术的起源可以追溯到 20 世纪 80 年代。1986 年,德国公司 Aesculap-Werke AG 首次提出了将水流引入激光切割过程的创新想法,并制造出首代水导激光设备。不过,当时的技术尚处于雏形阶段,仅仅是在光纤出口添加了一小柱水流,激光

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 1673

17.网络爬虫—Scrapy入门与实战

Scrapy基础Scrapy是一个用于爬取网站数据和提取结构化数据的Python应用程序框架。Scrapy的设计是用于Web爬虫,也可以用于提取数据和自动化测试。 Scrapy提供了一个内置的HTTP请求处理器,可以通过编写自定义的中间件来扩展其功能。Scrapy使用Twisted事件驱动框架,可以同时处理数千个并发请求。 🧾 Scrapy的主要组件包括: ScrapyEngine(引擎):负责Spider、ItemPipeline、Downloader、Scheduler中间的通讯,信

weixin_50804299的博客 7611

提示工程架构师干货:AI上下文工程在社交媒体舆情溯源中的应用

在舆情溯源中,“上下文”不是单一的“文本内容”,而是多维度、多源的信息集合溯源时间:从事件爆发到找到源头,只用了24小时(传统方法需要3-5天);溯源准确性:100%(通过人工验证确认);后续行动:品牌X发布了澄清声明,揭露了品牌Y的恶意行为,舆情在48小时内平息。社交媒体舆情溯源是一个“复杂的系统工程”,需要结合数据、模型、上下文理解。AI上下文工程的出现,让我们从“被动应对”转向“主动溯源”,从“模糊判断”转向“精准分析”。

Java大师兄的博客 813

Python爬虫框架Scrapy入门

Python爬虫框架Scrapy入门 一、爬虫定义 网络爬虫(Web crawler),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本,它们被广泛用于互联网搜索引擎或其他类似网站,可以自动采集所有其能够访问到的页面,以获取这些网站的内容。 从功能上来讲,爬虫一般分为数据采集,处理,储存三个部分。传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过

langshanglibie的专栏 2万+

提示libfakeroot.so或libfakeroot-sysv.so出错处理方法

嵌入式Linux、Buildroot交叉编译出现fakeroot问题处理方法。

阿xin*的嵌入式AI 1443

【IoT】压力式电子脉搏器设计

智能硬件

产品线负责人 1620

Scrapy网络爬虫框架学习

Scrapy是一个用Python编写的开源爬虫框架,目标是帮助开发者高效地从网站上提取数据。它和单纯用 requests + BeautifulSoup 不一样,Scrapy提供了一整套完整的“爬虫解决方案”,非常适合做中大型爬虫项目。

YoungLime的博客 2808

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

基于Scrapy框架实现网络爬虫-Python

网络爬虫原理 互联网上大量的信息以网页形式提供给用户,用户通过浏览器从服务器获得网页数据并经过浏览器解析后,进行网页阅读、内容复制、链接单击等操作。用户与网页服务器的通信是通过HTTP或者HTTPS实现的,网络浏览器是用户向服务器发送请求数据、接收服务器回应数据、解析并呈现服务器回应数据的客户端软件。 用户不通过浏览器而是通过程序自动获取网页内容,有两种办法:一是当服务器提供API方法时,可以调用API获取网页数据;二是当服务器没有提供API方法时,需要使用爬虫程序从服务器获取网页数据并从中过滤提取所需数据

weixin_43845524的博客 6340

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Python网络爬虫:Scrapy框架的全面解析

Scrapy是一个功能强大且灵活的开源网络爬虫框架,它提供了一种高效的方式来爬取网站并提取所需的数据。本文将深入探讨Scrapy框架的核心概念、使用方法以及高级技巧,帮助你更好地理解和应用Scrapy进行网络爬虫的开发。

4.0啊的博客 2848

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Scrapy框架(高效的网络爬虫)

介绍scrapy框架的使用,并给出案例

FFNCL的博客 3202
上一篇: 三分钟了解js2py模块
下一篇: 简易海龟绘图
北木x
博客等级 码龄7年 6粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值