Scrapy 爬虫实例教程(一)---简介及资源列表

Scrapy(官网 http://scrapy.org/)是一款功能强大的,用户可定制的网络爬虫软件包。其官方描述称:"

Scrapy is a fast high-level screen scraping and web crawling framework, used to crawl websites and extract structured data from their pages. It can be used for a wide range of purposes, from data mining to monitoring and automated testing

"

Scrapy在github中有源码托管https://github.com/scrapy/scrapy,其安装可以参考github中提供的安装方法(大百度中也提供了很多安装方法的描述)。另外网站1和网站2提供了scrapy的使用方法和简单实例(小编后续随笔也会简单写一个scrapy实例,供大家参考)。

Scrapy的爬虫原理:

            ”盗用“的scrapy 官网中的scrapy核心框架图

  Scrapy Engine是scrapy软件的核心,他负责各个组件的协调处理

  Scheduler是调度器,负责爬去队列的管理,如Request的入队和出队管理

  Item Pipeline 是抓取内容的核心组件,用户想要获取的内容可以写入item 然后再pipeline中设计数据的流向比如写入文件或是持久化到数据库中

  Downloader 则是scrapy与web site接触的端口,负责根据Request 请求网页然后以response的形式返回用户处理接口(默认是 spider的parse函数)

  Spider则是用户定制兴趣内容的模块,在scrapy的spiders中内置了BaseSpider,CSVFeedSpider,CrawlerSpider,用户可以根据情况选择合适spider继承与开发

  Spider Middlewares则是Spider与Scrapy Engine 的中间层,用户可以个性化定义Spider向Engine传输过程

Scrpay的运行过程:

    (1)Engine从Spider中获取一个需要爬取的URL(从spider中start_url获取),并以Request的形式在Scheduler中列队。

(2)Scheduler根据列队情况,把Request发送给Downloader,Downloader根据Request请求网页,并获取网页内容。

(3)网页内容以Response的形式经过Engine发送给Spider,并根据用户解析生成Item,发送给Pipeline。

(4)Pipeline根据获得的item和settings中的设置,处理item(process_item)把数据输出到文件或是数据库中。

上述过程反复进行,直到没有新的请求为止(此过程是一个异步处理过程)。

个人整理的Scrapy资源列表(望笑纳):

  (1)scrapy中文教程

http://scrapy-chs.readthedocs.io/zh_CN/latest/intro/overview.html

(2)一个不错的scrapy学习博客

http://blog.csdn.net/column/details/younghz-scrapy.html

(3)scrapy 官方wiki

        https://github.com/scrapy/scrapy/wiki

(4)scrapy实例

https://github.com/jackgitgz/CnblogsSpider

http://nkcoder.github.io/2015/12/10/scrapy-crawl-simple-in-action/?utm_source=tuicool&utm_medium=referral

时间: 2024-11-05 18:45:00

Scrapy 爬虫实例教程(一)---简介及资源列表的相关文章

Scrapy 爬虫实例 抓取豆瓣小组信息并保存到mongodb中

这个框架关注了很久,但是直到最近空了才仔细的看了下 这里我用的是scrapy0.24版本 先来个成品好感受这个框架带来的便捷性,等这段时间慢慢整理下思绪再把最近学到的关于此框架的知识一一更新到博客来. 先说明下这个玩具爬虫的目的 能够将种子URL页面当中的小组进行爬取 并分析出有关联的小组连接 以及小组的组员人数 和组名等信息 出来的数据大概是这样的 {    'RelativeGroups': [u'http://www.douban.com/group/10127/',           

scrapy爬虫实例w3school报错ImportError: No module named w3school.items

爬虫例程就不整个叙述了,百度一下超多的,贴上一篇经过验证可以爬取的例程的网址 http://blog.csdn.net/u012150179/article/details/32911511 下面是我在运行时中出现的错误 错误ImportError: No module named w3school.items 相应的错误的代码是 from w3school.items import W3SchoolItem 好坑啊,刚开始就觉得这个错误简直莫名其妙,在网上也看了很多都没解决,后来... 将it

scrapy爬虫实例

一.爬取电影信息 http://www.imdb.cn/nowplaying/{num}    #页面规则 http://www.imdb.cn/title/tt{num}    #某部电影信息 获取电影url和title 新建项目 scrapy startproject imdb 修改items.py # -*- coding: utf-8 -*- # Define here the models for your scraped items # # See documentation in:

scrapy爬虫框架处理流程简介

1.SPIDERS的yeild将request发送给ENGIN2.ENGINE对request不做任何处理发送给SCHEDULER3.SCHEDULER( url调度器),生成request交给ENGIN4.ENGINE拿到request,通过MIDDLEWARE进行层层过滤发送给DOWNLOADER5.DOWNLOADER在网上获取到response数据之后,又经过MIDDLEWARE进行层层过滤发送给ENGIN6.ENGINE获取到response数据之后,返回给SPIDERS,SPIDER

Scrapy安装、爬虫入门教程、爬虫实例(豆瓣电影爬虫)

Scrapy在window上的安装教程见下面的链接:Scrapy安装教程 上述安装教程已实践,可行.本来打算在ubuntu上安装Scrapy的,但是Ubuntu 磁盘空间太少了,还没扩展磁盘空间,暂时不想再上面装太多软件. Scrapy的入门教程见下面链接:Scrapy入门教程 上面的入门教程是很基础的,先跟着作者走一遍,要动起来哟,不要只是阅读上面的那篇入门教程,下面我简单总结一下Scrapy爬虫过程: 1.在Item中定义自己要抓取的数据: movie_name就像是字典中的“键”,爬到的数

Python爬虫教程-31-创建 Scrapy 爬虫框架项目

本篇是介绍在 Anaconda 环境下,创建 Scrapy 爬虫框架项目的步骤,且介绍比较详细 Python爬虫教程-31-创建 Scrapy 爬虫框架项目 首先说一下,本篇是在 Anaconda 环境下,所以如果没有安装 Anaconda 请先到官网下载安装 Anaconda 下载地址:https://www.anaconda.com/download/ Scrapy 爬虫框架项目的创建 0.打开[cmd] 1.进入你要使用的 Anaconda 环境 1.环境名可以在[Pycharm]的[Se

Python并发编程实例教程

有关Python中的并发编程实例,主要是对Threading模块的应用,文中自定义了一个Threading类库. 一.简介 我们将一个正在运行的程序称为进程.每个进程都有它自己的系统状态,包含内存状态.打开文件列表.追踪指令执行情况的程序指针以及一个保存局部变量的调用栈.通常情况下,一个进程依照一个单序列控制流顺序执行,这个控制流被称为该进程的主线程.在任何给定的时刻,一个程序只做一件事情. 一个程序可以通过Python库函数中的os或subprocess模块创建新进程(例如os.fork()或

Python之Scrapy爬虫框架安装及简单使用

题记:早已听闻python爬虫框架的大名.近些天学习了下其中的Scrapy爬虫框架,将自己理解的跟大家分享.有表述不当之处,望大神们斧正. 一.初窥Scrapy Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架. 可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中. 其最初是为了 页面抓取 (更确切来说, 网络抓取 )所设计的, 也可以应用在获取API所返回的数据(例如 Amazon Associates Web Services ) 或者通用的网络爬虫. 本文档将

Scrapy爬虫学习,及实践项目。

作为初学者,首先贴出自己看到的一个教程所提供的实例..后边会讲解我自身所完成的项目说明. 我自己所做项目下载地址为:Scrapy爬虫项目 自己项目说明: 爬取某网站流行时尚网页项目,并对具体项目内容进行二次爬取,将爬取到的内容拼接成为新的静态html,存入自身Ftp服务器,并将信息提交到某接口..(接口中进行数据操作.接口部分未上传) 示例 scrapy爬取了链接之后,如何继续进一步爬取该链接对应的内容? parse可以返回Request列表,或者items列表,如果返回的是Request,则这