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
Scrapy 爬虫实例教程(一)---简介及资源列表的更多相关文章
- Scrapy爬虫实例教程(二)---数据存入MySQL
书接上回 实例教程(一) 本文将详细描述使用scrapy爬去左岸读书所有文章并存入本地MySql数据库中,文中所有操作都是建立在scrapy已经配置完毕,并且系统中已经安装了Mysql数据库(有权限操 ...
- scrapy爬虫框架教程(二)-- 爬取豆瓣电影TOP250
scrapy爬虫框架教程(二)-- 爬取豆瓣电影TOP250 前言 经过上一篇教程我们已经大致了解了Scrapy的基本情况,并写了一个简单的小demo.这次我会以爬取豆瓣电影TOP250为例进一步为大 ...
- scrapy爬虫框架教程(二)-- 爬取豆瓣电影
前言 经过上一篇教程我们已经大致了解了Scrapy的基本情况,并写了一个简单的小demo.这次我会以爬取豆瓣电影TOP250为例进一步为大家讲解一个完整爬虫的流程. 工具和环境 语言:python 2 ...
- 简单scrapy爬虫实例
简单scrapy爬虫实例 流程分析 抓取内容:网站课程 页面:https://edu.hellobi.com 数据:课程名.课程链接及学习人数 观察页面url变化规律以及页面源代码帮助我们获取所有数据 ...
- scrapy爬虫实例(1)
爬虫实例 对象 阳光问政平台 目标 : 主题,时间,内容 爬取思路 预先设置好items import scrapy class SuperspiderItem(scrapy.Item): title ...
- Scrapy爬虫实例——校花网
学习爬虫有一段时间了,今天使用Scrapy框架将校花网的图片爬取到本地.Scrapy爬虫框架相对于使用requests库进行网页的爬取,拥有更高的性能. Scrapy官方定义:Scrapy是用于抓取网 ...
- Scrapy爬虫框架教程(四)-- 抓取AJAX异步加载网页
欢迎关注博主主页,学习python视频资源,还有大量免费python经典文章 sklearn实战-乳腺癌细胞数据挖掘 https://study.163.com/course/introduction ...
- python scrapy 爬虫实例
1 创建一个项目 scrapy startproject basicbudejie 2 编写爬虫 import scrapy class Basicbudejie(scrapy.Spider): na ...
- scrapy爬虫框架处理流程简介
1.SPIDERS的yeild将request发送给ENGIN2.ENGINE对request不做任何处理发送给SCHEDULER3.SCHEDULER( url调度器),生成request交给ENG ...
随机推荐
- 0Raspi开启root权限并登录使用
sudo passwd root sudo passwd --unlock root su root 切换回用 su pi 开始登陆选择root preferences>raspberry ...
- 用户输入与while循环
函数input()的工作原理: 函数input()让程序短暂运行,等待用户输入一些文本,获取用户输入后将其存储在一个变量中 测试input()功能-- #!/usr/bin/env python#fi ...
- mac下eclipse安装svn插件-subclipse
目前Eclipse最常用的svn插件莫非subclipse,在windows系统下的安装svn client和subclipse比较简单.本文介绍如何在mac安装svn插件和subclipse. 一. ...
- 如何在不使用系统函数的情况下实现PHP中数组系统函数的功能
PHP中为我们提供了各种各样的系统函数来实现我们需要的各种功能,那么,在不使用系统函数的情况下我们要怎样来实现这些功能呢?以下就是几种系统函数的实现方式. 首先,我们来定义一个数组: $arr= ar ...
- docker - 关于network的一些理解
docker 提供给我们多种(4种)网络模式,我们可以根据自己的需求来使用.例如我们在一台主机(host)或者同一个docker engine上面运行continer的时候,我们就可以选择bridge ...
- 纯CSS3向右循环闪过效果
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...
- Akka(5): ConsistentHashing Router - 可选定Routee的任务分配模式
上一篇讨论里我们介绍了几种任务分配(Routing)模式.Akka提供的几种现成智能化Routing模式大多数是通过对用户屏蔽具体的运算Routee选择方式来简化Router使用,提高智能程度,所以我 ...
- windows embedded compact 2013 正版免费下载
不知道wince2013是不是真的免费了,不过可以试一下! 下载地址:http://www.microsoft.com/en-us/download/details.aspx?id=39268 你仍然 ...
- weather API 天气api接口 收集整理
腾讯 http://sou.qq.com/online/get_weather.php?callback=Weather&city=南京 中国天气-weather.com.cn http:// ...
- 【webpack整理】一、安装、配置、按需加载
如果你: 是前端热爱者 :) 有JavaScript/nodejs基础 会使用一些常用命令行,mkdir,cd,etc. 会使用npm 想对webpack有更深的认识,或许此时你恰好遇到关于webpa ...