网络爬虫——scrapy入门案例

网络爬虫——scrapy入门案例一、概述Scrapy,Python开发的一个快速、高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试.其最初是为了页面抓取(更确切来说,网络抓取)所设计的,后台也应用在获取API所返回的数据(例如AmazonAssociatesWebServices)或者通用的网络爬虫.Scrapy吸引人的地方在于它是一个框架,任何人都可以根据需求方便的修改。它也提供了多种类型爬虫的基类,如BaseSpider

大家好,又见面了,我是你们的朋友全栈君。

一、概述

Scrapy,Python开发的一个快速、高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试. 其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的, 后台也应用在获取API所返回的数据(例如 Amazon Associates Web Services ) 或者通用的网络爬虫. Scrapy吸引人的地方在于它是一个框架,任何人都可以根据需求方便的修改。它也提供了多种类型爬虫的基类,如BaseSpider、sitemap爬虫等,最新版本又提供了web2.0爬虫的支持.

二、Scrapy五大基本构成:

Scrapy框架主要由五大组件组成,它们分别是调度器(Scheduler)、下载器(Downloader)、爬虫(Spider)和实体管道(Item Pipeline)、Scrapy引擎(Scrapy Engine)。下面我们分别介绍各个组件的作用。

(1)、调度器(Scheduler): 调度器,说白了把它假设成为一个URL(抓取网页的网址或者说是链接)的优先队列,由它来决定下一个要抓取的网址是 什么,同时去除重复的网址(不做无用功)。用户可以自己的需求定制调度器。 (2)、下载器(Downloader): 下载器,是所有组件中负担最大的,它用于高速地下载网络上的资源。Scrapy的下载器代码不会太复杂,但效率高,主要的原因是Scrapy下载器是建立在twisted这个高效的异步模型上的(其实整个框架都在建立在这个模型上的)。 (3)、 爬虫(Spider): 爬虫,是用户最关心的部份。用户定制自己的爬虫(通过定制正则表达式等语法),用于从特定的网页中提取自己需要的信息,即所谓的实体(Item)。 用户也可以从中提取出链接,让Scrapy继续抓取下一个页面。 (4)、 实体管道(Item Pipeline): 实体管道,用于处理爬虫(spider)提取的实体。主要的功能是持久化实体、验证实体的有效性、清除不需要的信息。 (5)、Scrapy引擎(Scrapy Engine): Scrapy引擎是整个框架的核心.它用来控制调试器、下载器、爬虫。实际上,引擎相当于计算机的CPU,它控制着整个流程。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/153144.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Android面试题集合[通俗易懂]

    Android面试题集合[通俗易懂]http://yuweiguocn.github.io/android-interview-list/Java基础简述题(一)&和&&的区别。Get和Post的区别httpresponsecodeudp连接和TCP的不同之处java中的softreference是个什么东西抽象类和接口的区别谈一下对java中的abstract的理解Overload和Override的区别St

  • 软件工程与软件测试_软件工程导论(第六版)

    软件工程与软件测试_软件工程导论(第六版)1.软件测试基础2.单元测试3.集成测试4. 确认测试5.白盒测试技术6.黑盒测试技术7.调试8.软件可靠性

  • Jetty 与 Tomcat

    Jetty 与 TomcatJetty也是一个“HTTP服务器+Servlet容器Jetty整体架构简单来说,JettyServer就是由多个Connector(连接器)、多个Handler(处理器),以及一个线程池组成。整体结构请看下面这张图。JettyServer可以有多个Connector在不同的端口上监听客户请求。对比一下Tomcat的整体架构,两者非常的相像。区别:第一个区别是Jetty中没有Service的概念,Tomcat中的Service包装了多个连接器和.

    2022年10月28日
  • 全文六万字《计算智能》智能优化算法 张军【Python】

    全文六万字《计算智能》智能优化算法 张军【Python】就这?《计算智能》张军超详细讲解前言正文第1章绪论1.1最优化问题1.1.1函数优化问题1.1.2组合优化问题1.2.1计算复杂性1.2.2NP理论1.3计算智能方法1.3.1计算智能的分类与理论1.3.2计算智能的研究与发展1.3.3计算智能的特征与应用前言由于最近新参与了一个与智能优化相关的科研课题,所以需要了解一些计算智能的算法知识。经老师推荐,从网上购买了张军老师的这本《计算智能》,尽管出版年份距今已有一些年日,但因该领域多年来并未有太多新的大改变,且该书对新手相对友好,故

  • java StringTokenizer

    java StringTokenizerStringTokenizer是一个用来分隔String的应用类,相当于VB的split函数。1.构造函数publicStringTokenizer(Stringstr)publicStringTokenizer(Stringstr,Stringdelim)publicStringTokenizer(Stringstr,Stringdelim,boolean

  • 概率论 协方差矩阵_方差和均值的性质

    概率论 协方差矩阵_方差和均值的性质http://blog.csdn.net/pipisorry/article/details/48788671要理解协方差矩阵,从以下几个步骤来说期望——>方差——>协方差——>协方差矩阵,这样更能理解它的由来和意义。本文主要讲意义和python里的使用,其实协方差矩阵有很强的实际意义和应用实例,有机会再补充。均值、方差和标准差给定一个含有n个样本的集合,可以得到样本的均值,方差和标准差。…

    2022年10月27日

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号