Scrapy爬虫框架 使用流程、框架、储存模式介绍

Scrapy特色

  • 建议 使用 xpath 进行解析 (因为Scrapy集成了xpath接口)
  • 高性能爬虫、多线程、数据解析、持久化存储
  • 自动携带cookie无需单独操作

安装

mac下 pip install scrapy

使用流程

  1. 终端cd 目录 scrapy startproject 工程名 (创建项目)
  2. 终端cd到下面根目录 scrapy genspider 爬虫名 起始url
  3. 编写配置文件 setting.py
# 19行 请求身份伪装user_agent 定义
USER_AGENT = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36'

# 22行 是否遵从robots协议(君子协议)
ROBOTSTXT_OBEY = False

# 打开管道
  1. 执行: scrapy crawl 爬虫文件名--nolog 阻止日志输出)

目录结构

在这里插入图片描述

存储数据

  • 磁盘存储

基于终端

# 保证parse方法返回可迭代对象
# 使用终端指令数据储存

'''爬虫必须是返回可迭代对象'''
def parse(self, response):
    div_list = response.xpath("//div[@id='content-left']/div")
    data_list = []
    for div in div_list:
        author = div.xpath("./div/a[2]/h2/text()").extract()[0]  
        content = div.xpath(".//div[@class='content']/span/text()").extract_first()
        data_dict = {
            'author': author,
            'content': content,
        }
        data_list.append(data_dict)
    return data_list
    
    
'''终端命令'''
scrapy crawl qiubai -o 储存文件名.后缀 --nolog

基于管道流程

  1. 将解析数据存到items对象
  2. 使用yield 将items交给管道文件处理
  3. 在管道文件pipelines编写代码储存
  4. 在setting配置文件开启管道

基于管道储存案例有另一篇我的文章

  • 数据库 请查看我的另一具体案例博客

猜你喜欢

转载自blog.csdn.net/weixin_42329277/article/details/84112806
今日推荐