1. scrapy项目实现流程

  • 创建一个scrapy项目:scrapy startproject mySpider
  • 生成一个爬虫:scrapy genspider 
  • 提取数据:完善spider,使用xpath等方法
  • 保存数据:pipeline中保存数据

2. 创建scrapy项目

命令:scrapy startproject +<项目名字>
示例:scrapy startproject myspider
 

3. 创建爬虫

命令:scrapy genspider +<爬虫名字> + <允许爬取的域名>
示例:scrapy genspider 
 

4. 完善spider

完善spider即通过方法进行数据的提取等操作。
注意:
  1. response.xpath方法的返回结果是一个类似list的类型,其中包含的是selector对象,操作和列表一样,但是有一些额外的方法
  2. extract() 返回一个包含有字符串的列表
  3. extract_first() 返回列表中的第一个字符串,列表为空没有返回None
  4. spider中的parse方法必须有
  5. 需要抓取的url地址必须属于allowed_domains,但是start_urls中的url地址没有这个限制
  6. 启动爬虫的时候注意启动的位置,是在项目路径下启动

5. 数据传递到pipeline

为什么要使用yield?
  • 让整个函数变成一个生成器,有什么好处呢?
  • 遍历这个函数的返回值的时候,挨个把数据读到内存,不会造成内存的瞬间占用过高
  • python3中的range和python2中的xrange同理
注意:
  • yield能够传递的对象只能是:BaseItem,Request,dict,None

6. 完善pipeline

pipeline在settings中能够开启多个,为什么需要开启多个?
  • 不同的pipeline可以处理不同爬虫的数据
  • 不同的pipeline能够进行不同的数据处理的操作,比如一个进行数据清洗,一个进行数据的保存
pipeline使用注意点
  • 使用之前需要在settings中开启
  • pipeline在setting中键表示位置(即pipeline在项目中的位置可以自定义),值表示距离引擎的远近,越近数据会越先经过
  • 有多个pipeline的时候,process_item的方法必须return item,否则后一个pipeline取到的数据为None值
  • pipeline中process_item的方法必须有,否则item没有办法接受和处理
  • process_item方法接受item和spider,其中spider表示当前传递item过来的spider

7. 输出日志LOG的设置

为了让我们自己希望输出到终端的内容能容易看一些,我们可以在setting中设置log级别
在setting中添加一行(全部大写):LOG_LEVEL = "WARNING”
默认终端显示的是debug级别的log信息
 
 

scrapy的入门使用(一)的更多相关文章

  1. [转]Scrapy简单入门及实例讲解

    Scrapy简单入门及实例讲解 中文文档:   http://scrapy-chs.readthedocs.io/zh_CN/0.24/ Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用 ...

  2. Scrapy爬虫入门系列3 将抓取到的数据存入数据库与验证数据有效性

    抓取到的item 会被发送到Item Pipeline进行处理 Item Pipeline常用于 cleansing HTML data validating scraped data (checki ...

  3. Python爬虫Scrapy框架入门(0)

    想学习爬虫,又想了解python语言,有个python高手推荐我看看scrapy. scrapy是一个python爬虫框架,据说很灵活,网上介绍该框架的信息很多,此处不再赘述.专心记录我自己遇到的问题 ...

  4. Scrapy 爬虫入门 +实战

    爬虫,其实很早就有涉及到这个点,但是一直没有深入,今天来搞爬虫.选择了,scrapy这个框架 http://scrapy-chs.readthedocs.io/zh_CN/0.24/intro/tut ...

  5. 爬虫入门(四)——Scrapy框架入门:使用Scrapy框架爬取全书网小说数据

    为了入门scrapy框架,昨天写了一个爬取静态小说网站的小程序 下面我们尝试爬取全书网中网游动漫类小说的书籍信息. 一.准备阶段 明确一下爬虫页面分析的思路: 对于书籍列表页:我们需要知道打开单本书籍 ...

  6. Scrapy简单入门及实例讲解

    Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架. 其可以应用在数据挖掘,信息处理或存储历史数据等一系列的程序中.其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的, 也可以 ...

  7. Scrapy简单入门及实例讲解-转载

    Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架. 其可以应用在数据挖掘,信息处理或存储历史数据等一系列的程序中.其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的, 也可以 ...

  8. 10,Scrapy简单入门及实例讲解

    Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架. 其可以应用在数据挖掘,信息处理或存储历史数据等一系列的程序中.其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的, 也可以 ...

  9. Scrapy 框架入门简介

    一.Scrapy框架简介 Scrapy 是用 Python 实现的一个为了爬取网站数据.提取结构性数据而编写的应用框架. Scrapy 常应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中. ...

  10. Scrapy 框架 入门教程

    Scrapy入门教程 在本篇教程中,我已经安装好Scrapy 本篇教程中将带您完成下列任务: 创建一个Scrapy项目 定义提取的Item 编写爬取网站的 spider 并提取 Item 编写 Ite ...

随机推荐

  1. 后台编辑器组件VmEditor

    <template> <div class="wrap"> <div class="vm-editor"> <div ...

  2. 开源虚拟化KVM(一)搭建部署与概述

    一,KVM概述 1.1 虚拟化概述 在计算机技术中,虚拟化意味着创建设备或资源的虚拟版本,如服务器,存储设备,网络或者操作系统等等 [x] 虚拟化技术分类: 系统虚拟化(我们主要讨论的反向) 存储虚拟 ...

  3. Django 缓存

    官方文档 缓存的出现就是为了减轻对数据库的压力和加快内存访问的速度.我们的访问请求最终都是返回一个大的字符串,缓存就是将这段字符串直接存储起来,下次你来了,不用经过view去数据库或者内存拿到数据再渲 ...

  4. margin的垂直方向塌陷

    标签(空格分隔): margin塌陷 margin垂直方向塌陷问题: 如下代码: <!DOCTYPE html> <html lang="en"> < ...

  5. cdn帮助链接汇集

    1. 如何查看节点和站点的流量,负载和连接信息 2. cdnbest常见状态码解释 3. 如何让用户访问走最近最快的线路(分组线路) 4. cdnbest里如何查看网站是否被缓存 5. cdnbest ...

  6. python中类中的@property

    @property考察 Student 类: class Student(object): def __init__(self, name, score): self.name = name self ...

  7. CSRF 和 XSS 的区别

    XSS 利用的是用户对指定网站的信任,CSRF 利用的是网站对用户网页浏览器的信任 XSS: 跨站脚本攻击 原名为Cross Site Scriptin,为避免和网页层级样式表概念混淆, 另名为XSS ...

  8. Python人工智能第二篇

    Python人工智能之路 - 第二篇 : 现成的技术   预备资料: 1.FFmpeg: 链接:https://pan.baidu.com/s/1jonSAa_TG2XuaJEy3iTmHg 密码:w ...

  9. pip 的简单使用

    pip3 install scrapy #安装包 pip3 uninstall scrapy #删除安装包 pip3 search 'packages_name'#搜索包 pip3 list  #列出 ...

  10. 2017沈阳站 Tree

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6228 Tree Time Limit: 2000/1000 MS (Java/Others)    M ...