2.2-Scrapy爬虫框架的基本使用

一、Scrapy爬虫的常用命令

命令说明格式tips
startproject创建一个新工程scrapy startproject <name> [dir]
genspider创建一个爬虫scrapy genspider [options] <name> [dir]
settings获取爬虫配置信息scrapy settings [options]
crawl 运行一个爬虫scrapy crawl <spider>
list列出工程中所有的爬虫scrapy list
shell 启动url调式命令行scrapy shell [url]可以自己调试【很方便】

二、Scrapy爬虫的步骤  [简述]

步骤一:建立一个Scrapy爬虫工程     

D:\test>scrapy startproject python123demo

#过渡:

D:\test> cd python123demo
D:\test\python123demo>

步骤二:在工程中产生一个Scrapy爬虫

D:\test\python123demo>scrapy genspider demo www.baidu.com

步骤三:配置产生的spider爬虫

--->针对demo.py文件修改:初始化url地址;获取后面的解析内容;有事也需要配置pipelines.py文件

步骤四:运行爬虫,获取网页

D:\test\python123demo>scrapy crawl demo

-------->分割线,下面是一些要点

  • item.py 用来保存数据的数据结构
  • middlewares.py 在爬取过程中定义的中间键,可用来处理requests,response和错误异常
  • pipelines.py 管道,可以用来输出一些Items
  • settings.py 定义了配置消息
  • 最主要的都在spider文件下的demo.py
  • 最后保存yield里面的数据  scrapy crawl demo -o save.json  --->这是保存为json格式,可以定义为其他格式

三、Scrapy爬虫的小例子

1、cmd中的基础操作:

C:\Users\Administrator\Desktop>scrapy startproject mySpider
C:\Users\Administrator\Desktop>cd mySpider
C:\Users\Administrator\Desktop\mySpider>scrapy genspider demo www.baidu.com

2、生成文件的介绍:

218bd05e7e7869008bd375adbb0214c8b05.jpg

3、生成的demo.py文件如下

import scrapy

class DemoSpider(scrapy.Spider):
    name = 'demo'   #爬虫名
    allowed_domains = ['www.baidu.com']  #允许爬虫的范围
    start_urls = ['http://www.baidu.com/']  #初始爬虫url

    def parse(self, response): #处理响应文件
        pass

说明:

(1)start_urls是爬虫执行时,第一次取url的地址(无论start_urls有多少url,都只会取一次url)

(2)parse()用于处理响应文件response

  • 在parse中若是yield item,则将爬取的item交给pipelines进行处理
  •                若是return item,则不经过pipelines处理

重点:parse()方法的工作机制

一般情况下使用的yield item,而不是return item

parse函数被当成一个生成器使用,scrapy会逐一获取parse方法中生成的结果,并且判断该结果是什么类型。

补充:怎么判断?

  • 若yield item 就是数据,scrapy框架会将其传到pipeline管道文件进行处理
  • 若yield scrapy.Request(url=  ,callback=  )就是请求,scrapy框架会将其传到调度器,调度器对其进行入队列、出队列,再交给下载器去下载

转载于:https://my.oschina.net/pansy0425/blog/2995306

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值