美文网首页
Scrapy 入门 - Part 1

Scrapy 入门 - Part 1

作者: 渡笃狼 | 来源:发表于2017-08-08 00:29 被阅读11次

创建项目

利用scrapy命令行创建一个名为“tutorial”的项目

scrapy startproject tutorial

生成的目录格式为

tutorial/
    scrapy.cfg #项目配置文件
    tutorial/
        __init__.py
        items.py
        pipelines.py
        settings.py
        spiders/ #放置spider代码的目录.
            __init__.py
            ...

定义Item

Item是保存爬取到的内容的容器,就像是Python中的dict
类似在ORM中做的一样,可以通过创建一个 scrapy.Item 类, 并且定义类型为 scrapy.Field 的类属性来定义一个Item。

Sample of /tutorial/items.py

import scrapy
import time

#LianjiaItem继承自scrapy.Item
class LianjiaItem(scrapy.Item):

    #所有想要爬取的字段都是scrapy.Field类型
    _id = scrapy.Field()
    title = scrapy.Field()
    acreage = scrapy.Field()
    cityCode = scrapy.Field()
    districtName = scrapy.Field()
    face = scrapy.Field()
    floor_state = scrapy.Field()
    houseSellId = scrapy.Field()
    latitude = scrapy.Field()
    longitude = scrapy.Field()
    hall = scrapy.Field()
    metroRemark =  scrapy.Field()
    plateName = scrapy.Field()
    propertyName = scrapy.Field()
    referAvgPrice = scrapy.Field()
    room = scrapy.Field()
    showPrice = scrapy.Field()
    unitPrice = scrapy.Field()
    title = scrapy.Field()
    tags = scrapy.Field()
    crawl_date = scrapy.Field()

编写爬虫(Spider)

为了创建一个Spider,必须继承 scrapy.Spider 类, 且定义以下三个属性:

  • name: 用于区别Spider。 该名字必须是唯一的,不可以为不同的Spider设定相同的名字。
  • start_urls: 包含了Spider在启动时进行爬取的url列表。 因此,第一个被获取到的页面将是其中之一。 后续的URL则从初始的URL获取到的数据中提取。
  • parse()
    是spider的一个方法。 被调用时,每个初始URL完成下载后生成的 Response 对象将会作为唯一的参数传递给该函数。 该方法负责解析返回的数据(response data),提取数据(生成item)以及生成需要进一步处理的URL的 Request
    对象。

Sample of Spider.py

import scrapy

class LianjiaSpider(scrapy.spiders.Spider):
    name = "lianjia_spider"
    allowed_domains = ["lianjia.com"]
    start_urls = ["http://bj.lianjia.com/fangjia/" ]

    def parse(self, response):
        filename = response.url.split("/")[-2]
        with open(filename, 'wb') as f:
            f.write(response.body)

Scrapy为Spider的 start_urls 属性中的每个URL创建了 scrapy.Request 对象,并将 parse
方法作为回调函数(callback)赋值给了Request。
Request对象经过调度,执行生成 scrapy.http.Response 对象并送回给spider parse() 方法。

相关文章

  • Scrapy 入门 - Part 1

    创建项目 利用scrapy命令行创建一个名为“tutorial”的项目 生成的目录格式为 定义Item Item是...

  • scrapy笔记

    1 scrapy的运行原理 参考:Learning Scrapy笔记(三)- Scrapy基础Scrapy爬虫入门...

  • scrapy折腾系列01

    scrapy爬虫折腾 1、scrapy爬虫入门 scrapy是框架,好比一辆车子,beautifulsoup好比一...

  • DC-01:爬虫框架scrapy入门

    本主题主要是scrapy入门,包含内容如下:  1. Scrapy框架环境搭建;  2. 理解scrapy框架结...

  • Scrapy入门案例

    Scrapy入门案例 Scrapy教程: 官方 《Scrapy 1.5 documentation》 中文 《S...

  • scrapy小记

    scrapy入门学习地图 scrapy 框架:http://doc.scrapy.org/en/latest/to...

  • 28.scrapy的入门使用

    scrapy的入门使用 学习目标: 掌握 scrapy的安装 应用 创建scrapy的项目 应用 创建scrapy...

  • scrapy入门使用及pycharm远程调试

    一·scrapy的入门使用 scrapy的安装 创建scrapy项目 创建scrapy爬虫:在项目目录下执行 运行...

  • 教程

    一 入门系列 1. Scrapy爬虫入门教程二 官方提供Demo https://www.jianshu.com/...

  • (大纲37)Python07爬虫 第4节、scrapy框架

    7、爬虫4、scrapy框架 1.4.0Scrapy框架1.4.1配置安装1.4.2入门案例1.4.3Scrapy...

网友评论

      本文标题:Scrapy 入门 - Part 1

      本文链接:https://www.haomeiwen.com/subject/ziqalxtx.html