原理,结构,基本命令,item,spider,selector简述

原理

(1)结构

(2)运行流程

实操

(1) scrapy命令:

注意先把python安装目录的scripts文件夹添加到环境变量

查看帮助

scrapy

scrapy <command> -h

创建项目

scrapy startproject 项目名

创建爬虫

scrapy genspider [-t template] <name> <domain>

运行爬虫

运行一个爬虫的基本命令:

scrapy crawl 爬虫名

-a 给spider的构造器传参数

-o表示写入文件,-t 表示以json格式输出

scrapy crawl test -o test.json -t json

查看可用爬虫

scrapy list

快捷爬取(不需要创建爬虫项目,爬取结果直接回送到命令行)

scrapy fetch <url>

(2)项目结构功能

(3)item.py定义数据model

(4)spiders文件夹中的爬虫文件

name爬虫名,唯一

allowed_domains域名

start_urls起始url

parse函数——处理爬取到的response的函数

基本格式:

parse函数使用selector的格式:

parse函数使用selector并通过生成器返回多个结果:

(5)selector

四种格式(即spider文件parse函数中response对象的四个可用方法)

response.xpath()

response.css()

response.extract()

response.re()

举例:response.xpath()使用

selector的嵌套

(6)保存爬取结果的方式之一:Feed Exports

scrapy 原理,结构,基本命令,item,spider,selector简述的更多相关文章

  1. 第五篇 scrapy安装及目录结构,启动spider项目

    实际上安装scrapy框架时,需要安装很多依赖包,因此建议用pip安装,这里我就直接使用pycharm的安装功能直接搜索scrapy安装好了. 然后进入虚拟环境创建一个scrapy工程: (third ...

  2. 第十七节:Scrapy爬虫框架之item.py文件以及spider中使用item

    Scrapy原理图: item位于原理图的最左边 item.py文件是报存爬取数据的容器,他使用的方法和字典很相似,但是相比字典item多了额外的保护机制,可以避免拼写错误或者定义错误. 1.创建it ...

  3. Scrapy 原理

    Scrapy 原理 一.原理 scrapy 是一个为了爬取网站数据,提取结构性数据而编写的应用框架.可以应用在包括数据挖掘,信息处理或存储历史数据等一系列程序中. 二.工作流程 Scrapy Engi ...

  4. Scrapy(六):Spider

    总结自:Spiders - Scrapy 2.5.0 documentation Spider 1.综述 ①在回调函数Parse及其他自写的回调函数中,必须返回Item对象.Request对象.或前两 ...

  5. python学习之-用scrapy框架来创建爬虫(spider)

    scrapy简单说明 scrapy 为一个框架 框架和第三方库的区别: 库可以直接拿来就用, 框架是用来运行,自动帮助开发人员做很多的事,我们只需要填写逻辑就好 命令: 创建一个 项目 : cd 到需 ...

  6. scrapy框架系列 (3) Item Pipline

    item pipeline 当Item在Spider中被收集之后,它将会被传递到Item Pipeline,这些Item Pipeline组件按定义的顺序处理Item. 每个Item Pipeline ...

  7. scrapy框架中多个spider,tiems,pipelines的使用及运行方法

    用scrapy只创建一个项目,创建多个spider,每个spider指定items,pipelines.启动爬虫时只写一个启动脚本就可以全部同时启动. 本文代码已上传至github,链接在文未. 一, ...

  8. Scrapy 对不同的Item进行分开存储

    在Piperlines里面进行对象的判断, def process_item(self, item, spider): if item.__class__ == BaseItem : #savexxx ...

  9. scrapy 知乎关键字爬虫spider代码

    以下是spider部分的代码.爬知乎是需要登录的,建议使用cookie就可以了,如果需要爬的数量预计不多,请不要使用过大的线程数量,否则会过快的被封杀,需要等十几个小时账号才能重新使用,比起损失的这十 ...

随机推荐

  1. delete void *

    看代码的时候看到 typedef char xxx[sizeof(T) ? 1 : -1]; 这种语句 如:JavaScriptCore/wtf/OwnPtrCommon.h template < ...

  2. maven仓库国内镜像

    <mirror>        <id>alimaven</id>        <name>aliyun maven</name>     ...

  3. binutils工具集之---objcopy,ranlib,size,strings,strip

    objcopy的作用是拷贝一个目标文件的内容到另一个目标文件中.objcopy使用GNU BFD库去读或写目标文件.objcopy可以使用不同于源目标文件的格式来写目的目标文件(也即是说可以将一种格式 ...

  4. lua工具库penlight--07函数编程(一)

    函数编程 序列 Lua 迭代器 (最简单的形式) 是一个函数,可以多次调用返回一个或多个值.for in语句理解迭代器和循环,直到该函数将返回nil. Lua有标准的序列迭代器 (ipairs和pai ...

  5. position: absolute、relative的问题

    设置此属性值为 absolute 会将对象拖离出正常的文档流绝对定位而不考虑它周围内容的布局.假如其他具有不同 z-index 属性的对象已经占据了给定的位置,他们之间不会相互影响,而会在同一位置层叠 ...

  6. JQ实现吸顶效果代码

    吸顶下过代码跟简单几行代码就可以了 如果滚动的军力大于100,就改变导航的定位方式,否则就默认 $(function(){         $(window).scroll(function(){   ...

  7. 第二百三十五节,Bootstrap栅格系统

    Bootstrap栅格系统 学习要点: 1.移动设备优先 2.布局容器 3.栅格系统 本节课我们主要学习一下 Bootstrap 的栅格系统,提供了一套响应式.移动设备优先的流 式栅格系统. 一.移动 ...

  8. page.registerstartupscript的用法

    msdn如下说:允许 asp.net 服务器控件在 page 中发出客户端脚本块.     [C#]    public virtual void RegisterStartupScript(     ...

  9. Canvas清屏的实现

    /** * Canvas清屏的操作 * * 參考资料: http://blog.csdn.net/lfdfhl/article/details/9076001 * */ private void cl ...

  10. hdu 1051:Wooden Sticks(水题,贪心)

    Wooden Sticks Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Tot ...