此次演示的ITcast小爬虫没有写管道文件,而是将所有的item存到一个列表中,运行爬虫时通过-o指定输出文件格式来保存信息。

原理:通过下面列出的itcast.py 文件的  return items 可知,爬虫文件返回给引擎的信息并不是字段item,而是自定义的列表items,此时引擎会判断出并非item,则会按照我们的命令来存储信息。

运行命令:scrapy crawl itcast -o teachers.json

这里teachers.json 将保存爬取下来的信息,也可以输出成其他格式的文件。

scrapy保存信息最简单的方法主要有四种,-o指定输出格式的文件,命令如下:

#json格式,默认为Unicode编码

scrapy crawl itcast -o teachers.json

#json lines格式,默认为Unicode编码

scrapy crawl itcast -o teachers.json1

#csv逗号表达式,可用Excel打开

scrapy crawl itcast -o teachers.csv

#xml格式

scrapy crawl itcast -o teachers.xml

代码:

这里只列出spiders/itcast.py 文件和items.py 文件

items.py文件:定义需要存储信息的字段

spiders/itcast.py 文件:解析响应文件并把信息存到item里,然后把所有item存到列表items里,通过-o指定输出文件格式将信息输出到指定文件

items.py


# -*- coding: utf-8 -*-# Define here the models for your scraped items
#
# See documentation in:
# https://doc.scrapy.org/en/latest/topics/items.htmlimport scrapyclass ItcastItem(scrapy.Item):# define the fields for your item here like:#老师姓名name = scrapy.Field()#老师职称title = scrapy.Field()#老师信息info = scrapy.Field()

spiders/itcast.py

#RVB NMYGFVC 98Aq23 -*- coding: utf-8 -*-
import scrapy
from ITcast.items import ItcastItem #导入itemclass ItcastSpider(scrapy.Spider):#爬虫名,启动爬虫时需要的参数*必需name = 'itcast'#爬取域的范围,允许爬虫在这个域下进行爬取(可选)allowed_domains = ['http://www.itcast.cn']#起始url列表,爬虫执行后第一批请求将从这个列表获取start_urls = ['http://www.itcast.cn/channel/teacher.shtml']def parse(self, response):#解析响应文件node_list = response.xpath("//div[@class='li_txt']")items=[]#列表存储所有的itemfor node in node_list:#创建item字段对象,用来存储字段信息item = ItcastItem()#.extract()提取出xpath对象的内容部分,提取之后是个列表,需要取索引name = node.xpath("./h3/text()").extract()title = node.xpath("./h4/text()").extract()info = node.xpath("./p/text()").extract()#把信息存储到item字段中item['name'] = name[0]item['title'] = title[0]item['info'] = info[0]items.append(item)return items #信息返回给引擎,判断出并非item会按照我们的命令来存储信息

四、ITcast小爬虫-- -o指定输出格式的文件相关推荐

  1. 五、ITcast小爬虫 与管道文件

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

  2. 第一个python爬虫_Python爬虫01——第一个小爬虫

    Python小爬虫--贴吧图片的爬取 在对Python有了一定的基础学习后,进行贴吧图片抓取小程序的编写. 目标: 首先肯定要实现图片抓取这个基本功能 然后实现对用户所给的链接进行抓取 最后要有一定的 ...

  3. Python爬虫01——第一个小爬虫

    原文:https://www.cnblogs.com/Axi8/p/5757270.html Python小爬虫--贴吧图片的爬取 在对Python有了一定的基础学习后,进行贴吧图片抓取小程序的编写. ...

  4. 数据挖掘 (三)——基于python的当当网小爬虫

    导语 本文将实现利用Python爬取并简单地可视化分析当当网的图书数据. 详细的exe.源代码.程序解析等文件请关注公众号 行歌 知否, 回复关键词 当当网小爬虫 获取. 更多精彩内容请关注公众号 转 ...

  5. python小爬虫之天气查询

    python小爬虫之天气查询 刚开始研究爬虫,这个小程序通过抓取网页源代码,使用json解析实现了天气的查询. 1.需求分析 该博客实现了简单的天气查询功能,输入城市名称后可以查询出该城市的天气情况. ...

  6. 简单完整的Python小爬虫教程

    作者:vinyyu 声明:版权所有,转载请注明出处,谢谢. 1 调入需要使用的库 time库用于每次获取页面的时间间隔:pandas库用于DataFrame的数据格式存储:requests用于爬虫获取 ...

  7. c# 指定打开某个路径下的CMD_Windows小技巧 批处理文件实现目录下文件批量打包压缩...

    最近整理资料,发现很多 pdf 文档,占用了不少的存储空间,考虑使用 7-zip 进行压缩存储,由于文件比较多,且分散在不同目录下,一个个文件压缩比较繁琐.为了提高效率且,方便后面取用,所有打算捣鼓个 ...

  8. Java豆瓣电影爬虫——小爬虫成长记(附源码)

    以前也用过爬虫,比如使用nutch爬取指定种子,基于爬到的数据做搜索,还大致看过一些源码.当然,nutch对于爬虫考虑的是十分全面和细致的.每当看到屏幕上唰唰过去的爬取到的网页信息以及处理信息的时候, ...

  9. 1号小爬虫:普通的爬虫,下载百度壁纸

    更多爬虫请见:我的爬虫史 代码说明: 曾经模仿实现过下载淘宝MM图片的爬虫,现在重新拾起爬虫,也是先从下载图片开始.本爬虫用来下载百度壁纸(传送门). 1号小爬虫主要包括两个步骤:第一步用urllib ...

最新文章

  1. 描述文件_【iOS】描述文件删除不了?教你一键移除所有恶意描述文件
  2. Vue SPA 打包优化实践
  3. android组件通讯 Intent- 系统标准的Activity Action应用
  4. VS中的调试相关的技巧
  5. boost::mutex::scoped_lock
  6. JDK8的日期时间类1
  7. xaml语言建立首个win8 Metro应用,rss阅读器
  8. 评价微型计算机总线的性能指标,计算机组成原理学习笔记(3):总线
  9. 天津工业大学c语言题库,天津工业大学it1创新2届c语言期末复习.ppt
  10. drf 解析器的配置和使用
  11. Centos7安装MariaDB10.28稳定版
  12. sublime text c++ mac 怎么用_Mac 地址是什么,怎么用
  13. python plt 一张图两个y轴,图例legend合并
  14. 6.SOA架构:服务和微服务分析及设计--- Web服务的服务API与契约设计
  15. python爬虫之使用urllib模块实现有道翻译功能
  16. 集团类企业信息化原则与思路
  17. 蓝凌OA自定义公式样例库
  18. 生僻字html乱码,Tomcat 5.5.X及以上版本的生僻字乱码解决办法
  19. |密码狗|Dongle|克隆狗|U盘狗
  20. Python - 深度学习系列13- 显卡与CPU计算对比

热门文章

  1. C# IHttpContextAccessor 获取路由信息
  2. 传统供应链向智慧供应链转型之道
  3. 手机云存储空间已满用免费不限速阿里云盘替代
  4. 米拓后台维护密码_密码维护
  5. nvme命令中prp_蛋蛋读NVMe之三
  6. 百度超级链与重庆市联合打造的电子处方流转平台,并荣获可信区块链高价值案例
  7. Latex编辑论文入门经验总结(3)--IEEE access的latex排版注意点汇总
  8. Designer Compiler2016与Prime Time2016安装过程的若干问题
  9. Google的脚本错误
  10. 银河麒麟桌面操作系统V10 SP1 屏幕亮度调整方法