1.创建项目:

a.在想创建项目的目录按:shift+右键——在此处打开命令窗口(或 在cmd里cd进入想要的目录)输入CMD命令(此处不用test,因为系统已经有一个此名字,将报错提示已存在):

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

 注意:在linux 系统内如提示权限问题,则在命令前加 sudo ~

scrapy startproject test2

b.接下来在这个目录即可看到”test2“的文件夹:(test2里保存的是要引用的模块;cfg文件是scrapy部署时的配置文件;)

 8.scrapy的第一个实例 随笔

 2.test2目录下文件及作用:

 __init__.py
 items.py          # Items的定义,定义爬取的数据结构
 middlewares.py    # Middlewares的定义,定义爬取时的中间件
 pipelines. py     # Pipelines的定义,定义数据管道
 settings.py       #配置文件
iders             #放置 Spiders的文件夹
 __init__.py

==============================

3.创建 Spider
Spider是自己定义的类, Scrap用它来从网页里抓取内容,并解析抓取的结果。不过这个类必须继承 Scrap提供的 Spider类 scrap. Spider,还要定义Spider的名称和起始请求,以及怎样处理爬取后的结果的方法。
也可以使用命令行创建一个 Spider。比如要生成 baidu这个 Spider,可以执行如下cmd命令:

cd test2
scrapy genspider baidu fanyi.baidu.com

进入刚才创建的utoi件夹,然后执行 genspider命令。第一个参数是 Spider的名称,第二个参数是网站域名。执行完毕之后, spiders文件夹中多了一个 quotes. py,它就是刚刚创建的 Spider,内容如下:

# -*- coding: utf-8 -*-
import scrapy


class QuotesSpider(scrapy.Spider):
    name = 'baidu'
    allowed_domains = ['fanyi.baidu.com\']
    start_urls = ['http://fanyi.baidu.com\/']

    def parse(self, response):
        pass

【说明】这里有三个属性—name、 allowed domains和 start urls,还有一个方法 parse

★name:它是每个项目唯一的名字,用来区分不同的 Spider

★allowed domains:它是允许爬取的域名,如果初始或后续的请求链接不是这个域名下的,则请求链接会被过滤掉。

★start urls:它包含了 Spider在启动时爬取的url列表,初始请求是由它来定义的。

★parse:它是 Spider的一个方法。默认情况下,被调用时 start urls里面的链接构成的请求完成下载执行后,返回的响应就会作为唯一的参数传递给这个函数。该方法负责解析返回的响应、提取数据或者进一步生成要处理的请求。

4.创建ltem

Item是保存爬取数据的容器,它的使用方法和字典类似。不过,相比字典,ltem多了额外的保护机制,可以避免拼写错误或者定义字段错误。
创建Iem需要继承 scrap.Item类,并且定义类型为 scrap. Field的字段。观察目标网站,我们可以获取到到内容有text、 author、tags。
定义Iem,此时将 Items.py修改如下:

import scrapy
class QuoteItem(scrap. Item)
text= scrapy. Field()
author scrapy. Field()
tags= scrapy. Field()
#这里定义了三个字段,接下来爬取时我们会使用到这个Item。

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄