当前位置: 首页 > news >正文

泰安市建设信息网站中国最新军事新闻 头条 今天

泰安市建设信息网站,中国最新军事新闻 头条 今天,网站前端设计培训,wordpress全文显示Scrapy是一个用于爬取网站数据并提取结构化信息的Python框架 一、Scrapy介绍 1.引擎(Engine) – Scrapy的引擎是控制数据流和触发事件的核心。它管理着Spider发送的请求和接收的响应,以及处理Spider生成的Item。引擎是Scrapy运行的驱动力。…

Scrapy是一个用于爬取网站数据并提取结构化信息的Python框架

一、Scrapy介绍

1.引擎(Engine)
– Scrapy的引擎是控制数据流和触发事件的核心。它管理着Spider发送的请求和接收的响应,以及处理Spider生成的Item。引擎是Scrapy运行的驱动力。

2.调度器(Scheduler)
– 调度器负责接收引擎发送的请求,并根据一定的策略(如优先级、深度等)将它们入队。当引擎需要新的请求时,调度器会从队列中取出请求并返回给引擎。它确保了请求的有序处理。

3.下载器(Downloader)
– 下载器负责根据Scrapy引擎发送的请求下载网页内容。它使用HTTP协议与网站服务器进行通信,并将下载的网页内容作为响应返回给Scrapy引擎。下载器是Scrapy获取网页数据的核心组件。

4.Spiders
– Spiders是Scrapy中用于定义爬取逻辑和解析网页内容的组件。它们根据定义的规则生成初始请求,并处理下载器返回的响应,从中提取出需要的数据(Item)或生成新的请求(Request)进行进一步的爬取

5.Item Pipelines
– Item Pipelines负责处理Spider提取出的Item。它们可以执行各种任务,如清洗数据、验证数据的完整性、存储数据到数据库或文件中。通过定义多个Pipeline,可以灵活地处理数据,满足不同的需求。

6.下载器中间件(Downloader Middlewares)
– 下载器中间件位于Scrapy引擎和下载器之间,用于处理请求和响应。它们可以修改请求(如添加请求头、设置代理等)或响应(如压缩处理、重定向处理等),从而控制Scrapy如何与网站交互。中间件是Scrapy扩展功能的重要机制。

7.Spider中间件(Spider Middlewares)
– Spider中间件位于Scrapy引擎和Spiders之间,用于处理Spider的输入(即响应)和输出(即Item和新的请求)。它们可以修改或丢弃响应,处理异常,甚至修改或丢弃Spider生成的Item和Request。Spider中间件提供了在Spider执行过程中插入自定义功能的能力。

各组件之间的数据流向如图所示:
在这里插入图片描述

  • 从初始URL开始,Scheduler会将其交给Downloader进行下载
  • 下载之后会交给Spider进行分析
  • Spider分析出来的结果有两种
  • 一种是需要进一步抓取的链接,如 “下一页”的链接,它们会被传回Scheduler;
  • 另一种是需要保存的数据,它们被送到Item Pipeline里,进行后期处理(详细分析、过滤、存储等)

二.安装scrapy

pip install scrapy

安装后,只要在命令终端输入 scrapy,提示类似以下结果,代表已经安装成功

在这里插入图片描述

三、Scrapy应用示例

1、新建项目
在开始爬取之前,必须创建一个新的Scrapy项目。进入自定义的项目目录中,运行下列命令:

scrapy startproject Spider

其中: mySpider 为项目名称,可以看到将会创建一个 mySpider 文件夹,目录结构大致如下:

mySpider/scrapy.cfgmySpider/__init__.pyitems.pypipelines.pysettings.pyspiders/__init__.py...
  • scrapy.cfg: 项目的配置文件。
  • mySpider/: 项目的Python模块,将会从这里引用代码。
  • mySpider/items.py: 项目的目标文件。
  • mySpider/pipelines.py: 项目的管道文件。
  • mySpider/settings.py: 项目的设置文件。
  • mySpider/spiders/: 存储爬虫代码目录。

2、创建爬虫
在当前目录下输入命令,将在mySpider/spiders目录下创建一个名为bd_test的爬虫,并指定爬取域的范围:

scrapy genspider bd_test "baidu.com"

注意:
第一个参数是爬虫名字不是项目名字;
第二个参数是网站域名,是允许爬虫采集的域名。比如:baidu.com 不限制域名 可能爬到 zhihu.com 。后期可以更改,但要先有生成的目录和文件结果:
在这里插入图片描述

执行命令(执行的是spiders中name)

scrapy crawl baidu

在这里插入图片描述
也可以脚本运行

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

3、编写spiders
class中的
name:也是就是爬虫名一定是唯一的
allowed_domains:域名
start_urls:链接(列表可写入多条,按顺序)一般一个
parse(): 被调用时,每个初始 URL 完成下载后生成的 Response 对象将会作为唯一的参数传递给该函数。该方法负责解析返回的数据,提取数据(生成 item)以及生成需要进一步处理的 URL 的 Request 对象。

4、创建item
创建完 Spider 文件之后,接着定义一个容器来保存要爬取的数据,我们对items.py文件进行更改或者创建一个新的文件来定义 item 都行。
  创建 Item 需要继承 scrapy.Item 类,并且定义类型为 scrapy.Field 的字段。例如我们要爬取慕课网站课程的信息,包括课程名称,课程 URL,课程图片 URL,课程描述,学习人数。

import scrapyclass MyreptileItem(scrapy.Item):# 在这里可以定义你需要的字段,如:name = scrapy.Field()title = scrapy.Field()url = scrapy.Field()image_url = scrapy.Field()introduction = scrapy.Field()student = scrapy.Field()

当spiders调用时,导入即可
在这里插入图片描述
5、pipelines.py
在Scrapy中,Pipelines 是用来处理爬取到的数据(Item)的组件。它们可以执行一些清理、验证和持久化(比如存储到数据库或文件)的操作。列入存入redis:
在这里插入图片描述
6、中间件middlewares
具体参考文章:https://www.jianshu.com/p/2c524bfc11d1

参考文献:同上

http://www.yayakq.cn/news/805622/

相关文章:

  • WordPress站群 管理大型企业网站建设制作
  • 社交移动电子商务平台有哪些如何做好seo基础优化
  • 校园招生网站建设的简报西安网站建设的费用
  • 个人网站备案网址导航做跟单员的话应该关注哪些网站
  • 合理规划网站wordpress订单系统
  • 重庆代还信用卡网站建设深圳网站建设qwyx100
  • 广州企业网站开发设计公司网站建设需要多少钱
  • 做网站如何赚广费电商网
  • 石家庄 做网站网站建设运行工作情况总结
  • 图片展示网站搭建淄博网站制作服务优化
  • 杭州城乡建设厅网站电脑培训课程
  • 辽宁建网站云南省建设测量员注册网站
  • 有了网址怎么做网站中国最大域名注册商
  • 宁波建设业协会网站网站后台更新为什么前台不现实
  • 玉溪网络推广 网站建设游族网络公司最新消息
  • 网站内容不收录wordpress 说明书
  • 建邺html5响应式网站网站文章页内链结构不好可以改吗
  • 高清图片素材网站免费下载河南seo
  • 潍坊网站建设 选聚搜网络wordpress磁力插件
  • 购买域名是什么意思西安网站快速优化
  • 做电影网站怎么赚钱榆林网站建设熊掌号
  • 树状结构的网站android系统开发
  • 网站维护员工作内容最新网站开发建设教材
  • 网站编辑工作内容怎么写做网站网站需要注意什么
  • 免费建网站 高校社团官方网站wordpress 镜像下载
  • dw做旅游网站毕业设计模板下载大良网站设计
  • 九江建设局网站网站建设整体策划
  • 青岛建设银行银行招聘网站网站建设标志头像图片
  • ui做的好看的论坛网站手机应用开发平台
  • 山东省住房和城乡建设厅网站省财政厅经济建设处网站