1. 创建一个Scrapy项目
  2. 定义提取的Item
  3. 编写爬取网站的 spider 并提取 Item
  4. 编写 Item Pipeline 来存储提取到的Item(即数据)

创建项目

在开始爬取之前,您必须创建一个新的Scrapy项目。进入您打算存储代码的目录中,运行下列命令:

scrapy startproject tutorial

该命令将会创建包含下列内容的 tutorial 目录:

tutorial/scrapy.cfgtutorial/__init__.pyitems.pypipelines.pysettings.pyspiders/__init__.py...

这些文件分别是:

  • scrapy.cfg: 项目的配置文件
  • tutorial/: 该项目的python模块。之后您将在此加入代码。
  • tutorial/items.py: 项目中的item文件.
  • tutorial/pipelines.py: 项目中的pipelines文件.
  • tutorial/settings.py: 项目的设置文件.
  • tutorial/spiders/: 放置spider代码的目录.

在默认生成的spiders目录下新建heartsong_spider.py,我们的爬虫就写在这里面,因为是介绍,那么此处就写个简单的下载网站的主页,让大家能运行一下,感受一下scrapy。

import scrapyclass HeartsongSpider(scrapy.spiders.Spider):name = "heartsong"  # 爬虫的名字,执行时使用allowed_domains = ["heartsong.top"]  # 允许爬取的域名,非此域名的网页不会爬取start_urls = ["http://www.heartsong.top"  # 起始url,此例只爬这一个页面   ]def parse(self, response):  # 真正的爬虫方法html = response.body  # response是获取到的来自网站的返回# 以下四行将html存入文件filename = "index.html"file = open(filename, "w")file.write(html)file.close()

要说明的是,这个类不是随心所欲来写的,name,allowed_domains,start_urls,都是类似于”重载”的值。也就是说,scrapy内部会检测这些变量的值,变量名不可以起成其它的名字,类似的变量之后还会有介绍。至于parse方法,就是重载的父类的方法,我们爬虫的主体一般就写在这里面。
好,现在让我们来运行它
在命令行中进入heartsong目录下,执行命令

scrapy crawl heartsong

此处的名字heartsong是与爬虫类中的 name保持一致。

最简单存储爬取的数据的方式是使用 Feed exports:

scrapy crawl dmoz -o items.json

该命令将采用 JSON 格式对爬取的数据进行序列化,生成 items.json 文件。

Scrapy入门(二)创建Scrapy项目相关推荐

  1. python scrapy 入门_Python爬虫Scrapy入门看这篇就够了

    一.初窥scrapy scrapy中文文档: http://scrapy-chs.readthedocs.io/zh_CN/latest/ Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应 ...

  2. gradle构建多模块项目_Gradle入门:创建多项目构建

    gradle构建多模块项目 尽管我们可以仅使用一个模块来创建一个运行中的应用程序,但有时将我们的应用程序划分为多个较小的模块是比较明智​​的. 因为这是一个相当普遍的用例,所以每个自重的构建工具都必须 ...

  3. Gradle入门:创建多项目构建

    尽管我们只能使用一个模块来创建一个工作的应用程序,但是有时将我们的应用程序划分为多个较小的模块是比较明智​​的. 因为这是一个相当普遍的用例,所以每个自重的构建工具都必须支持它,Gradle也不例外. ...

  4. 玩转 Scrapy 框架 (二):Scrapy 架构、Request和Response介绍

    目录 一.Scrapy 架构及目录源码分析 二.Request 和 Response 介绍 2.1 Request 2.2 Response 三.实例演示 3.1 POST 请求 3.2 GET 请求 ...

  5. 关卡设计快速入门_1. 创建新项目

    项目(Project) 是保存所有组成单独游戏并与您硬盘上的一组目录设置相一致的所有内容和代码的自包含单位. 举例来说,下图中,内容浏览器 的层次结构树中包含与您硬盘中的项目文件夹内相同的目录结构. ...

  6. beeware详解(二):创建beeware项目

    安装briefcase后(可见我的第一篇教程),使用如下命令新建一个项目: briefcase new 你可以参考下面的填写方式: First, we need a formal name for y ...

  7. pycharm创建scrapy项目教程及遇到的坑

    最近学习scrapy爬虫框架,在使用pycharm安装scrapy类库及创建scrapy项目时花费了好长的时间,遇到各种坑,根据网上的各种教程,花费了一晚上的时间,终于成功,其中也踩了一些坑,现在整理 ...

  8. 最流行的python爬虫框架_Python最火爬虫框架Scrapy入门与实践

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

  9. mac使用eclipse创建java_【Java】Mac上使用Eclipse创建Java项目的一般步骤

    不常创建,记录一下. 一.创建项目文件夹 1.打开eclipse,在工作目录下创建项目文件夹. 二.创建maven项目 1.创建父项目 1.1 File -> New -> Other 步 ...

  10. C++后续:QT学习(Qt概述,创建QT项目)

    目录 声明 一. Qt概述 1.1 什么是Qt 1.2 Qt的发展史 1.3 Qt支持的平台 1.4 Qt版本 1.5 Qt的下载与安装 1.6 Qt的优点 二.创建 Qt项目 2.1 如何创建 2. ...

最新文章

  1. Linux Watchdog 机制
  2. python第三方库安装-python第三方库安装在哪
  3. OO Unit4 UML
  4. Json,Hashlib与Base64(占坑待补)
  5. 为什么 MySQL 回滚事务也会导致 ibd 文件增大?
  6. notepad++格式化插件安装
  7. 打拼10年的数据分析师,终于明白职场鄙视链才是最大的沉没黑洞
  8. 【PostgreSQL-9.6.3】psql常用命令
  9. 86相似标准形07——若尔当(Jordan)标准形
  10. 经典C语言编程100例——题目+答案代码(完结)
  11. UEstudio 注册机使用教程
  12. PCI-E 1x, 4x, 8x, 16x 接口定义
  13. 汇编程序:通过查表方法实现0-9的平方
  14. 单源最短路径dijkstra算法
  15. Java中print,printf,println的区别
  16. 如何用mshtml获得Javascript中function的返回值[mshtml]
  17. 微软学术搜索的新功能设想:用户账户系统——史经浩
  18. 鼠标滚动:mousewheel事件在Firefox采用DOMMouseScroll事件
  19. Java第十天:多态 异常处理
  20. 在线解题小程序有哪些功能?

热门文章

  1. 用户线程和内核线程之间的区别
  2. 笔记本电脑打开后不显示桌面_宝骏630打开空调开关后压缩机不工作 - 汽车空调...
  3. mybaitplus 根据id批量进行修改_批量重命名工具
  4. ajax带来的主要问题有哪些,ajax面试题
  5. 安卓linux环境 查看进程,查看基于Android 系统单个进程内存、CPU使用情况的几种方法...
  6. python宣传图片_宣传图片制作网站
  7. python动态规划图解_动态规划案例之python实现(一)
  8. c语言程序设计和数据结构,C语言程序设计与数据结构实践 闵光太主编.pdf
  9. win10设置默认输入法_为什么说win10越来越好用了?(技巧篇)
  10. linux抓post命令,Linux 使用curl发起post请求的4个常用方式