Scrapy基于终端指令的持久化存储

保证爬虫文件的parse方法中有可迭代类型对象(通常为列表or字典)的返回,该返回值可以通过终端指令的形式写入指定格式的文件中进行持久化操作。

scrapy使用流程:
创建工程:
scrapy startproject ProName
进入工程目录:
cd ProName
创建爬虫文件:
scrapy genspider spiderName www.xxx.com
编写相关操作代码
执行工程:
scrapy crawl spiderName
执行指令:
执行输出指定格式进行存储:将爬取到的数据写入不同格式的文件中进行存储
scrapy crawl 爬虫名称 -o xxx.json
scrapy crawl 爬虫名称 -o xxx.xml
scrapy crawl 爬虫名称 -o xxx.csv

将糗事百科作者和段子内容数据进行爬取切持久化存储

创建工程和爬虫文件
scrapy startproject QiuBai

scrapy genspider QiuBaiSpider https://www.qiushibaike.com/

代码

class QiubaiSpider(scrapy.Spider):
    name = ‘qiubai‘  # 应用名称(唯一标识)
    # 允许爬取的域名(如果遇到非该域名的url则爬取不到数据)
    allowed_domains = [‘https://www.qiushibaike.com/‘]
    # 起始爬取的url
    start_urls = [‘https://www.qiushibaike.com/text‘]

    # 访问起始URL并获取结果后的回调函数,该函数的response参数就是向起始的url发送请求后,获取的响应对象.该函数返回值必须为可迭代对象或者NUll
    def parse(self, response):
        # print(response.text)  # 获取字符串类型的响应内容
        # 获取作者名称和内容
        # print(response.body)  # 获取字节类型的相应内容
        # xpath为response中的方法,可以将xpath表达式直接作用于该函数中
        odiv = response.xpath(‘//div[@class="col1 old-style-col1"]/div‘)
        print(len(odiv))
        content_list = []  # 用于存储解析到的数据
        for div_item in odiv:
            # xpath函数返回的为列表,列表中存放的数据为Selector类型的数据。
            # 我们解析到的内容被封装在了Selector对象中,需要调用extract()函数将解析的内容从Selecor中取出。
            author = div_item.xpath(‘.//div[1]/a[2]/h2/text()‘)[0].extract()
            content = div_item.xpath(‘.//div[@class="content"]/span/text()‘).extract()
            content = ‘‘.join(content)  # 列表转换为字符串
            # 打印展示爬取到的数据
            # print(author, content)

            dic = {
                ‘author‘:author.strip(),
                ‘content‘:content.strip()
            }

            content_list.append(dic)  # 内容列表
        return content_list

执行

scrapy crawl qiubai -o qiubai1.json -s FEED_EXPORT_ENCODING=utf-8

其中 -s FEED_EXPORT_ENCODING=utf-8
为解决中文乱码

结果

原文地址:https://www.cnblogs.com/xiao-apple36/p/12608075.html

时间: 2024-10-06 03:11:10

Scrapy基于终端指令的持久化存储的相关文章

Scrapy框架基础应用和持久化存储

一.Scrapy框架的基础应用 1.Scrapy的概念 Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架,非常出名,非常强悍.所谓的框架就是一个已经被集成了各种功能(高性能异步下载,队列,分布式,解析,持久化等)的具有很强通用性的项目模板. 2.安装 windows: a. pip3 install wheel b. 下载twisted http://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted c. 进入下载目录,执行 pip3 in

【Scrapy框架持久化存储】 -- 2019-08-08 20:40:10

原文: http://106.13.73.98/__/138/ 基于终端指令的持久化存储 前提:保证爬虫文件中的parse方法的返回值为可迭代数据类型(通常为list/dict). 该返回值可以通过终端指令的形式写入指定格式的文件中进行持久化存储. 执行如下命令进行持久化存储: scrapy crawl 应用名称 -o xx.文件格式 其支持的文件格式有:'json', 'jsonlines', 'jl', 'csv', 'xml', 'marshal', 'pickle' 基于管道的持久化存储

【Scrapy框架持久化存储】 򏪕

原文: http://blog.gqylpy.com/gqy/363 " 基于终端指令的持久化存储 前提:保证爬虫文件中的parse方法的返回值为可迭代数据类型(通常为list/dict). 该返回值可以通过终端指令的形式写入指定格式的文件中进行持久化存储. 执行如下命令进行持久化存储: scrapy crawl 应用名称 -o xx.文件格式 其支持的文件格式有:'json', 'jsonlines', 'jl', 'csv', 'xml', 'marshal', 'pickle' 基于管道的

python网络爬虫——scrapy框架持久化存储

1.基于终端指令的持久化存储 保证爬虫文件的parse方法中有可迭代类型对象(通常为列表or字典)的返回,该返回值可以通过终端指令的形式写入指定格式的文件中进行持久化操作. 执行输出指定格式进行存储:将爬取到的数据写入不同格式的文件中进行存储 scrapy crawl 爬虫名称 -o xxx.json scrapy crawl 爬虫名称 -o xxx.xml scrapy crawl 爬虫名称 -o xxx.csv 2.基于管道的持久化存储 scrapy框架中已经为我们专门集成好了高效.便捷的持

爬虫学习 11.scrapy框架持久化存储

爬虫学习 11.scrapy框架持久化存储 基于终端指令的持久化存储 基于管道的持久化存储 今日详情 1.基于终端指令的持久化存储 保证爬虫文件的parse方法中有可迭代类型对象(通常为列表or字典)的返回,该返回值可以通过终端指令的形式写入指定格式的文件中进行持久化操作. 执行输出指定格式进行存储:将爬取到的数据写入不同格式的文件中进行存储 scrapy crawl 爬虫名称 -o xxx.json scrapy crawl 爬虫名称 -o xxx.xml scrapy crawl 爬虫名称

Scrapy持久化存储

1. 基于终端指令的持久化存储 保证爬虫文件的parse方法中有可迭代类型对象(通常为列表or字典)的返回,该返回值可以通过终端指令的形式写入指定格式的文件中进行持久化操作. # 终端指令: 只可以将parse方法的返回值进行本地文件的持久化存储 # 执行输出指定格式进行存储:将爬取到的数据写入不同格式的文件中进行存储 scrapy crawl 爬虫名称 -o xxx.json scrapy crawl 爬虫名称 -o xxx.xml scrapy crawl 爬虫名称 -o xxx.csv 2

Scarpy框架持久化存储

一.介绍 持久化存储操作分为两类:磁盘文件和数据库. 而磁盘文件存储方式又分为:__基于终端指令__和基于管道 二.基于终端指令的持久化存储 三.基于管道的持久化存储 原文地址:https://www.cnblogs.com/xiugeng/p/10051913.html

爬虫--使用scrapy爬取糗事百科并在txt文件中持久化存储

工程目录结构 spiders下的first源码 # -*- coding: utf-8 -*- import scrapy from firstBlood.items import FirstbloodItem class FirstSpider(scrapy.Spider): #爬虫文件的名称 #当有多个爬虫文件时,可以通过名称定位到指定的爬虫文件 name = 'first' #allowed_domains 允许的域名 跟start_url互悖 #allowed_domains = ['w

Scrapy框架实现持久化存储

硬盘存储 (1) 基于终端指令 * 保证parse方法返回一个可迭代类型的对象(存储解析到页面内容) * 使用终端指定完成数据存储到磁盘文件的操作     scrapy crawl 爬虫文件名称 -o 磁盘文件.后缀 def parse(self, response): # 建议使用xpath进行解析(框架集成了xpath解析的接口) div_list = response.xpath('//div[@id="content-left"]/div ') # 存储解析到的页面数据 dat