python-scrapy爬虫框架

scrapy爬虫框架

    1.Scrapy爬虫框架

  1. scrapy 不是一个函数功能库,而是一个爬虫框架。
  2. scrapy爬虫框架:
    1. 爬虫框架是实现爬虫功能的一个软件结构和功能组件集合。
    2. .简单说爬虫框架是一个半成品,能够帮助用户实现专业网络爬虫。
  3. scrapy爬虫框架共包含七个部分(5+2结构),五个主体部分,两个中间件。数据流如图。
  4. 框架的入口SPIDERS,出口为ITEM PIPELINES,DOWNLOADER,ENGIN,SCHEDULER模块已经实现了,用户只需要编写ITEM PIPELINES和SPIDERS模块。SPIDERS提供需要访问的url链接,同时对网页进行解析,而ITEM PIPELINES对页面的后处理。
  5.  这种对模块代码的编写方式,也可以叫做配置。

2.模块介绍

  1. Engin:控制所有模块之间的数据流,根据条件触发事件,不需要用户修改。
  2. Downloader:根据请求下载页面,不需要用户修改。
  3. Scheduler:对所有爬取请求进行调度管理,不需要用户修改。
  4. 中间件模块Downloader Middleware
    1. 实施Engin,Scheduler和Downloader之间用户可配置的控制。
    2. 通过中间件修改,丢弃,新增请求或响应。
  5. Spider:解析Downloader返回的响应(Response),产生爬取项(scraped item)和爬取请求(Requset),是最核心单元,是需要用户编写主要模块。
  6. Item Piplines:以流水线方式处理Spide产生的爬取项。有一组操作顺序组成,每个操作是一个Item Pipline类型。包括清理,检验和查重爬取项中的ITEM数据,将数据存储到数据库等操作。需人工配置。
  7. Spider Middleware:
    1. 对请求和爬取项再处理。
    2. 通过中间件修改,丢弃,新增请求或爬取项。

    
3.requests库与Scarpy

  1. 相同点:都可以进行网页请求和爬取,是python的两个重要的爬虫实现路线;可用性好;都没有处理js,提交表单,应对验证码的功能;
requests VS. scrapy
requestsscrapy
网页级爬虫网站级爬虫
功能库框架
并发性考虑不足,性能差并发性好,性能较高
重点在页面下载重点在爬虫结构
定制灵活一般定制灵活,深度定制难
上手简单入门稍难

 

  1. 小需求,推荐使用requests库,不太小的推荐使用scrapy框架。自搭框架建议使用requests。

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

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

相关文章

如何正确地运用人工智能模型?

来源:内容摘自《模型思维:简化世界的人工智能模型(全彩)》模型,是客观事物的简化表示!历史上,每一个伟大模型的提出,都极大地推动了科学和社会的发展,比如历史上出现的3个…

讲解Linux数据库安装

学习了linux这门课之后,就开始实践过程了,这样比较记得牢固,学以致用。 有了基本的命令,就可以试着安装数据库了。 企业环境需要安装VMWare ESXi虚拟机,然后再在里面新建虚拟机。 镜像vmware-viclient-all-5.1.0-10641…

张钹院士:制约人工智能发展的最大困难是什么?

出品:新基建访谈采访:张楠整理:广胜脑科学被誉为自然科学研究的“终极疆域”,脑科学的发展不仅直接关系人类对于意识诞生机制的探索,也对推动当前 AI 技术发展具有重要意义。对于脑科学目前的发展现状、面临的难题、与…

《新一代城市大脑建设与发展》专家研讨会在京举办(新版)

(这个新版本增加了三位专家的发言)2021年6月26日,新一代城市大脑建设与发展专家研讨会在京举办,本次活动由城市大脑全球标准研究组主办,远望智库承办。6G 俱乐部提供了重要支持。20多位专家参与本次研讨会,…

排序算法-查找算法

排序算法 冒泡排序 从左向右扫描数据&#xff0c;选着最大的数据。要点&#xff1a;比较相邻的两个数&#xff0c;如果左边的数大于右边的数就进行交换。 template<class T> void BubbleSort(T *array, const int length) { for (int i 0; i <length-1; i) { fo…

当法律纽带变成“机器红线”,能让自动驾驶汽车更安全吗?

来源&#xff1a; 脑极体美国汽车协会(American Automobile Association, AAA)与哈佛大学的一项研究结果显示&#xff0c;高达77%的人表示担心自己与自动驾驶汽车共享道路的安全性&#xff0c;62%则担心自动驾驶汽车发生意外时的肇责归属。某种程度上来讲&#xff0c;这可以说是…

李联宁|量子计算机:技术路线、风险及战略投资

来源&#xff1a;《学术前沿》杂志2021年4月上&#xff08;微信有删节&#xff09;作者&#xff1a;西安交通大学城市学院教授 李联宁原文责编&#xff1a;桂琰新媒体责编&#xff1a;李思琪视觉&#xff1a;王洋图片来源&#xff1a;网络由于现有半导体微电子技术物理极限的原…

vs code 配置java

VS code 入门 Vs code 配置Java 首先到VS code官网下载VS code软件&#xff0c;打开界面如图&#xff1a; 下载安装好&#xff0c;打开界面如图(注下图已汉化)&#xff1a; 为了便于使用&#xff0c;我们先进行汉化&#xff0c;在最左边点击图1-1中的图标&#xff0c;出现如图…

四、HTTP控制器

1、控制器的作用&#xff1a;数据和视图之间的桥梁 2、控制器创建方法&#xff1a; &#xff08;1&#xff09;手动创建 <?php namespace App\Http\Controllers; class UserController extends Controller { public function showProfile($id) { return view(user.profile,…

机器人行业专利构建与维护刻不容缓,专利研发需下苦功!

来源&#xff1a;机器人大讲堂自我国加入世界贸易组织&#xff0c;已经近20年过去。但不可忽视的是&#xff0c;发达国家或地区利用其产业先发优势&#xff0c;也一直在知识产权和专利上&#xff0c;采用知识产权和专利贸易壁垒&#xff0c;限制我国企业参与国际市场竞争。机器…

java-弹簧布局(自适应窗口)

一、布局管理器 弹簧布局管理器以容器和组件的边缘为操作对象&#xff0c;通过组件与容器边缘以及组件与组件边缘建立约束(建立位置关系)&#xff0c;实现对组件的布局管理。主要通过函数putConstraint(Strting s1,Component c1,int len,Strting s2,Component c2);当s2在s1的北…

从1G到5G,从回顾过去到展望未来

来源&#xff1a;《从1G到5G&#xff1a;移动通信如何改变世界》 作者&#xff1a;王建宙始于20世纪80年代的蜂窝式移动通信&#xff0c;只用了30多年的时间&#xff0c;就实现了在全世界的普及。如今&#xff0c;手机是人们随身携带的使用频率最高的工具。手机改变了人类的沟…

重磅:国拨概算5.34亿!“新一代人工智能”重大项目项目申报指南发布

来源&#xff1a;brainnews各省、自治区、直辖市及计划单列市科技厅&#xff08;委、局&#xff09;&#xff0c;新疆生产建设兵团科技局&#xff0c;国务院各有关部门&#xff0c;各有关单位&#xff1a;为落实国务院印发的《新一代人工智能发展规划》总体部署&#xff0c;现根…

Idea中在代码顶部添加自定义作者和时间

一、在工具栏找到File>settings>Editor>File and Code Templates 二、选择右边的File Header,在编辑框中添加自定义信息&#xff0c;例如&#xff1a; 三、然后点击应用&#xff0c;保存就OK啦&#xff01; 转载于:https://www.cnblogs.com/HelloBigTable/p/10261145.…

MFC框架解析

通过上述方法&#xff0c;我们进行代码的编写&#xff0c;创建一个空项目&#xff0c;我们要编写MFC应有程序&#xff0c;因此设置项目的属性&#xff0c; 项目->属性->链接器->系统->子系统为&#xff1a;窗口 (/SUBSYSTEM:WINDOWS)&#xff0c;项目->属性-&g…

162年难题,黎曼猜想被印度数学家迎刃而解?克雷数研所发出质疑

来源 &#xff1a; 新智元黎曼猜想又被证明了&#xff1f;5年前&#xff0c;印度一名数学物理学家Kumar Easwaran声称自己证明了「黎曼猜想」&#xff01;他发表了一篇论文「The Final and Exhaustive Proof of the Riemann Hypothesis from First Principles」解释自己的发现&…

MFC的六大关键技术

//main.h头文件 #pragma once #include"a.h" class CShape { public:virtual CRuntimeClassTest* GetRuntimeClassTest() const;BOOL IsKindOf(const CRuntimeClassTest* pClass) const; public:static CRuntimeClassTest classCShape; };static char szCShape[] &q…