首页 > 编程语言 >python爬虫之基于终端指令的持久化存储

python爬虫之基于终端指令的持久化存储

时间:2024-07-01 16:59:35浏览次数:18  
标签:xpath 存储 title python 爬虫 li div extract

python爬虫之基于终端指令的持久化存储

scrapy持久化存储
基于终端指令:
1、要求:只可以将parse方法的返回值存储到本地的文本文件中
2、注意:持久化存储对应的文本文件类型只可以为:‘json’, ‘jsonlines’, ‘jsonl’, ‘jl’, ‘csv’, ‘xml’, ‘marshal’, ‘pickle’
3、指令:scrapy crawl xxx -o filePath
4、好处:简洁高效便捷
5、缺点:局限性比较强(数据只可以存储到指定后缀的文本文件中)
代码如下:

import scrapy


class QiushiSpider(scrapy.Spider):
    name = "qiushi"
    # allowed_domains = ["www.xxx.com"]
    start_urls = ["https://www.qiushile.com/duanzi/"]
    def parse(self, response):
        #解析:段子标题+段子内容
        li_list = response.xpath('//*[@id="ct"]/div[1]/div[2]/ul')
        all_data = []
        for li in li_list:
            #xpath返回的是列表,但是列表元素一定是Selector类型的对象
            #extract可以将Selector对象中data参数存储的字符串提取出来
            # title = li.xpath('./li/div[2]/div[1]/a/text()')[0].extract()
            title = li.xpath('./li/div[2]/div[1]/a/text()').extract_first()
            #列表调用了extract之后,则表示将列表中每一个Selector对象中data对应的字符串提取了出来
            content = li.xpath('./li/div[2]/div[2]//text()')[0].extract()

            dic = {
                'title':title,
                'content':content
            }
            all_data.append(dic)
            # print(title,content)


存储指令如下:

scrapy crawl qiushi -o ./qiushi.csv

标签:xpath,存储,title,python,爬虫,li,div,extract
From: https://blog.csdn.net/qq_55829395/article/details/140105091

相关文章

  • 【0基础学爬虫】爬虫基础之scrapy的使用
    【0基础学爬虫】爬虫基础之scrapy的使用大数据时代,各行各业对数据采集的需求日益增多,网络爬虫的运用也更为广泛,越来越多的人开始学习网络爬虫这项技术,K哥爬虫此前已经推出不少爬虫进阶、逆向相关文章,为实现从易到难全方位覆盖,特设【0基础学爬虫】专栏,帮助小白快速入门爬虫,本期为......
  • Go1.19革命:打造超效能站点模板爬虫
    目录项目介绍环境配置核心依赖库爬虫实现HTTP请求数据解析数据存储运行与测试代码详解注意事项项目介绍本文将介绍如何使用Go1.19实现一个简单的站点模板爬虫。这个爬虫将访问指定的网站,获取页面内容并解析需要的数据,最终将数据存储在本地文件中。此教程适合具有基本G......
  • RAG与LLM原理及实践(6)--- Chroma collection及存储逻辑分析
     背景在chromavectordb的世界中,除了对query的理解,另外就是需要深入理解chroma的运行模式,chroma运行时,提供了 local模式,server-client模式,这些在应用中固然重要,但从实现原理上说,其实就是通过http服务,在固定端口如11344上请求数据。但是在这之前,需要深入了解并理解coll......
  • Python: 送你一朵小红花
    importtimeimportnumpyasnpimportmatplotlib.pyplotasplt#绘制玫瑰花并添加文字importturtle#设置画布大小#turtle.screensize(canvwidth=None,canvheight=None,bg=None)turtle.setup(width=0.6,height=0.6)#设置初始位置turtle.penup()turtle.......
  • clickhouse集群及单节点库表占用存储
    1、单节点查询库表存储占用‘system’:库名SELECT  databaseAS`库名`,  tableAS`表名`,  sum(rows)AS`总行数`,  formatReadableSize(sum(data_uncompressed_bytes))AS`原始大小`,  formatReadableSize(sum(data_compressed_bytes))AS`压......
  • Azure Function App With Python 3.11
    有一段python代码,原来都跑在本地,既然functionapp可以运行python,还是比较新的python3.11,就想着直接用functionapp来跑了,省的进行sql逻辑改造,并且不吹不黑,python的pandas在处理dataframe上非常灵活。想法是好的,本地VSCODE搭起来python运行环境也很快,直接AZsignin就部署到自己......
  • stm32学习笔记---DMA直接存储器存取(代码部分)DMA数据转运/DMA+AD多通道
    目录第一个代码:DMA数据转运扩展知识DMA的配置步骤DMA的库函数DMA_DeInitDMA初始化和DMA结构体初始化函数DMA_CmdDMA_ITConfigDMA_SetCurrDataCounterDMA_GetCurrDataCounter四个获取标志位状态函数代码实现MyDMA.c第一步,开启时钟第二步,初始化DMA第三步,开关控制......
  • stm32学习笔记---DMA直接存储器存取(理论部分)
    目录DMA的简介存储器映像DMA框图DMA基本结构图DMA请求数据宽度与对齐实例数据转运+DMAADC扫描模式+DMA位段嵌入式闪存启动配置声明:本专栏是本人跟着B站江科大的视频的学习过程中记录下来的笔记,我之所以记录下来是为了方便自己日后复习。如果你也是跟着江科大的视......
  • 边玩边学,10个Python小游戏(含源码)
    经常听到有朋友说,学习编程是一件非常枯燥无味的事情。其实,大家有没有认真想过,可能是我们的学习方法不对?比方说,你有没有想过,可以通过打游戏来学编程?今天我想跟大家分享10个Python小游戏,教你如何通过边打游戏边学编程!接下来就一起来看看吧~1、飞机大战源码分享:importr......
  • 用python代码实现超级玛丽游戏(详细动画展示+源码分享)
    效果展示:温馨提示:篇幅有限,完整代码已打包文件夹,获取方式在:1.画面和角色的导入创建屏幕、从图片中导入Mario#屏幕创建和初始化参数self.screen=pygame.display.set_mode((WIDTH,HEIGHT))self.rect=self.screen.get_rect()pygame.display.set_caption(TITLE)......