python分页爬取es日志,获取数据

从Postman到Python:两种姿势爬取百度搜索结果的对比评测(2024新版) 本文对比了使用Postman与Python进行百度搜索结果爬取的两种方法。Postman适合快速调试与接口探索,门槛低;Python则能构建自动化、可扩展的爬虫程序,应对大规模数据采集与复杂反爬策略。文章提供了2024年最新的实战代码与策略分析,帮助开发者高效、合规地获取数据。 阅读详情

 这里是分页爬取数据,判断msgId重复的数据,并写入文件。这里重点参考分页的方式

此处是根据下面的代码判断数据是否读取完成的:

# 检查是否有更多结果需要滚动
    scroll_id = query.get('_scroll_id')
    if scroll_id is None or len(query['hits']['hits']) == 0:
        break
    # 使用滚动ID进行下一次滚动查询
    query = es.scroll(scroll_id=scroll_id, scroll='25m')

完整代码 

from elasticsearch import Elasticsearch


es = Elasticsearch(hosts="http://XXXX:9200/", http_auth=('elastic', '密码'))
scroll_id = None
fileName = "order-info-repeat" + ".txt"
msgIdList = []
msgIdListRepeat = []
total=0
repeatTotal=0
query_json = {
    "_source": ["message", "logger_name", "@timestamp"],
    "query": {
        "bool": {
            "filter":
                [
                    {
                        "bool":
                            {
                                "filter":
                                    [
                                        {
                                            "multi_match":
                                                {
                                                    "lenient": True,
                                                    "query": "rocketMQ syncPassengerOrderCnosumer topicList",
                                                    "type": "phrase"
                                                }
                                        }
                                    ]
                            }
                    },
                    {
                        "range":
                            {
                                "@timestamp":
                                    {
                                        "format": "strict_date_optional_time",
                                        "gte": "2023-07-27T02:30:00.000Z",
                                        "lte": "2023-07-27T04:00:00.000Z"
                                    }
                            }
                    }
                ],
            "must":
                [
                ],
            "must_not":
                [
                ],
            "should":
                [
                ]
        }
    }
}
query = es.search(index='indexName索引名称', body=query_json, scroll='25m', size=5000,request_timeout=2000000)
while True:
    for k in query['hits']['hits']:
        timestr = k['_source']['@timestamp']
        result = k['_source']['message']
        orderIdStart = result.find('order_id') + 11
        orderIdEnd = orderIdStart + 19
        orderId = result[orderIdStart:orderIdEnd]
        msgIdStart = result.find('msgId:') + 7
        msgIdEnd = msgIdStart + 32
        msgId = result[msgIdStart:msgIdEnd]
        if msgId in msgIdList:
            msgIdListRepeat.append(msgId)
            repeatTotal=repeatTotal+1
            print("repeat,msgId:"+msgId+",orderId:"+orderId)
            with open(fileName, 'a+', encoding='utf-8') as f2:
                f2.writelines("repeat,msgId:"+msgId+",orderId:"+orderId + "\n")
                f2.close()
        msgIdList.append(msgId)
    total=total+len(query['hits']['hits'])
    print("total:"+str(total)+",repeatTotal:"+str(repeatTotal)+",len:"+str(len(query['hits']['hits'])))
    # 检查是否有更多结果需要滚动
    scroll_id = query.get('_scroll_id')
    if scroll_id is None or len(query['hits']['hits']) == 0:
        break
    # 使用滚动ID进行下一次滚动查询
    query = es.scroll(scroll_id=scroll_id, scroll='25m')

Python Selenium实战:2023谷歌学术Bibtex自动化爬取避坑指南 网络爬虫是自动化获取网页数据的关键技术,其核心原理在于模拟浏览器行为与服务器交互,从而高效提取结构化信息。在学术研究领域,这项技术的价值尤为突出,能够将科研人员从繁琐的文献信息手动收集工作中解放出来,显著提升文献调研与管理的效率。针对谷歌学术这类依赖JavaScript动态渲染且反爬机制复杂的网站,传统的静态爬取方法往往失效。此时,结合浏览器自动化测试工具Selenium,通过模拟真人操作、处理动态加载元素并运用显式等待等策略,成为稳定获取数据的工程实践方案。本文聚焦于这一具体应用场景,详细解析如何利用Py 阅读详情

相关推荐

Spring Boot + Vue 3 + Elasticsearch 构建术语学习平台全栈实战

在软件开发领域,高效学习和掌握层出不穷的技术术语与框架概念是开发者面临的普遍挑战。传统文档阅读枯燥,知识碎片化严重。为了解决这一痛点,构建一个集结构化知识库、智能搜索和交互式学习于一体的平台成为技术趋势。其核心原理在于利用现代Web技术栈,将后端业务逻辑、前端用户界面与强大的搜索引擎相结合,实现知识的聚合与高效检索。这种平台的技术价值在于能够系统化地组织知识,通过关联代码示例和社区互动,将被动阅读转化为主动学习,极大提升学习效率。典型的应用场景包括企业内部知识库、技术社区以及个人学习管理工具。本文以构建一个

weixin_34208283的博客 375

python的Elasticsearch分页实践记录

记录使用中遇到的坑及处理方法es查询时,最大条数1w,调大限制等处理没研究,暂时分页获取1. from + size使用偏移+条数分页,使用过,超过1w也会报错,报的是from+size不能超过1w2. 使用scroll分页,反馈第一个快照查询的结果和快照的id,可继续查询 遇到报错:(404, ‘search_phase_execution_exception’, 'No search context found for id [123]')解决:是因为快照过期时间设置过短,id自动清除了,可以更改时

a961634066的博客 1172

爬取《古诗文网》全唐诗:基于Python的异步爬虫与反反爬实战

中国古典诗歌是中华文化的瑰宝,而《全唐诗》作为收录唐代诗歌最完整的总集,共收录诗人2200余位,作品48900余首,是研究唐代文学不可或缺的数据源。《古诗文网》()作为国内最大的古典文学公益网站,不仅收录了完整的《全唐诗》文本,还提供了作者简介、注释、译文等丰富信息,是自然语言处理、文学信息检索等领域研究者的重要数据来源。然而,在实际爬取过程中,我们面临着几个关键挑战:一是网站的反爬机制(请求频率限制、User-Agent检测、动态加载等);

2201_76125261的博客 187

ELK学习笔记:3- python api&pyspark读取es中filebeat收集的日志数据-2023-2-11

python api、es读取filebeat收集的日志数据

feifeileill的博客 644

python 实现分页显示从es中获取的数据方法

注意:使用该方法,获取的数据总数目不能超过1万,否则出错 #在python3上运行 from elasticsearch import Elasticsearch from urllib3.connectionpool import xrange def get_page_data(result): for hit in result['hits']['hits']: print(hit) if __name__=='__main__': es_host = "0.0.0.0" port = 9200 timeout = 15000 index = "gather

python批量从es取数据的方法(文档数超过10000)

今天小编就为大家分享一篇python批量从es取数据的方法(文档数超过10000),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

python/go操作elasticsearch

if err!= nil {return errreturn由于此方法是创建了一个全新的类型(但和time.Time可以互相转换),所以一些方法,如String()需要自己实现一遍,这个方法还有一个很大的优点就是不影响现有框架例如ORM框架在映射数据库日期类时对日期类的解析。针对某些特种结构体可以自己实现结构体的json接口,json序列化或反序列化会自动调用这些方法。

General_zy的博客 3028

国产FPGA开发实战:紫光同创编程软件中的约束文件详解与常见问题

本文详细解析了紫光同创FPGA编程软件中约束文件的关键配置技巧与常见问题。通过基础架构解析、时钟约束实践、物理约束调控及典型问题排查指南,帮助开发者高效掌握国产FPGA开发中的约束文件应用,提升开发效率与设计稳定性。

gin88的博客 909

python ES使用scorll获取单个索引的全量数据

滚动获取数据的关键在于,第一次使用scroll_id获取第一批数据的时候,同时下一个scroll_id也放在了第一次获取数据的返回体中了。想必已对scroll的用法已有基本了解。

cv小生的博客 815

比较器和运算放大器-2

今天继续了解输入阻抗问题,观察下图:首先考虑在我们没有接运放时,A点输出电压为6V,当接入如图所示的阻抗时电压还是6V吗?共模电阻和红框内对地电阻并联,阻值变小,相当于5k,通过计算可以求得A点电压变为4V,这样A的值发生了改变,试想一下这样的信号接入到运放的两端是不是相当于比较的两端信号发生了改变,那结果一定会发生偏离。信号源一般内阻是不确定的,一般也不是很小,如果不想改变输入阻抗,那唯一的办法就是改变运放的内阻了,比如内阻改为100K,1M等,越大越好,是不是A点电压就会无限接近6V。

weixin_42855218的博客 1312

Frida提取Cocos游戏XXTEA密钥的实战方法论

XXTEA是一种轻量级分组加密算法,广泛用于移动端游戏通信保护;其128位密钥的安全性直接决定网络协议逆向成败。在Cocos引擎生态中,密钥常以静态常量、JNI动态传递或Native运行时派生三种形态存在,导致传统静态分析失效。Frida凭借跨Java/Native注入能力与内存实时观测优势,成为捕获密钥‘出生瞬间’的关键工具——尤其适用于hook xxtea_encrypt函数入口、监控JNI参数传递、设置内存断点追踪派生过程等场景。本文聚焦Cocos2d-x与Cocos Creator项目,覆盖从密钥识

weixin_33509600的博客 418

python elasticsearch 翻页的三种方式

# -*- coding: utf-8 -*- # @Time : # @Author : from elasticsearch import Elasticsearch es = Elasticsearch(hosts="ip:9200", timeout=20, max_retries=10, retry_on_timeout=True) # Elasticsearch 需要保持搜索的上下文环境多久 游标查询过期时间为10分钟(10m) page = es.search( .

wywinstonwy的专栏 1982

SpringBoot实战——仿b站项目(一)

热部署就是当应用程序这种运行的时候升级冉家或者修改某一部分代码、配置文件时,无需手动启动应用,即可修改的部分生效工具 + IDEA配置。

weixin_52880572的博客 3456

连接es python_Flask搭建ES搜索引擎(二)

上一篇简单说了下 ES 在 Python 的增删改查,手把手教你使用Flask搭建ES搜索引擎(预备篇)。现在正式进入主题:开始使用 Flask 搭建 ES 搜索。1配置文件Config.py#coding:utf-8importosDB_USERNAME='root'DB_PASSWORD=None#如果没有密码的话DB_HOST='127.0.0.1'DB_PORT...

weixin_36274181的博客 310

最优控制 (Optimal Control) 算法详解及案例分析

最优控制是一种通过优化控制输入,使系统在满足约束条件的情况下达到最优性能的控制方法。其目标是最小化或最大化一个性能指标。

闲人编程的博客 2092

风险登记册vs问题日志:项目经理必须掌握的区别与应用

在项目管理的世界里,风险登记册和问题日志就像是项目经理的两个得力助手。我们的目的就是要搞清楚这两个助手各自的特点、区别以及如何在项目中好好使用它们。范围涵盖了项目从启动到结束的整个过程,无论是小项目还是大项目,都能从对这两个工具的正确使用中受益。我们先会用有趣的故事引出风险登记册和问题日志的概念,然后像给小学生讲故事一样解释它们是什么。接着分析它们之间的关系和区别,再用代码示例模拟它们在项目中的应用,之后介绍实际的应用场景、推荐相关工具和资源,探讨未来的发展趋势和挑战。

项目管理的博客 875

elasticsearch基础及在Python中的简单使用

目录 一. 安装java环境与elasticsearch、kibana 二. elasticsearch、kibana的部分文件说明 三. Kibana的Dev tools中ES的简单命令 四. ES的复杂查询 1.排序sort、分页、布尔查询bool 2...

weixin_30443813的博客 484

太空安全卫士:基于YOLOv5的空间态势感知系统(实现轨道碰撞预警与太空环境保护)

做完这个项目,你会发现自己完整走过了“数据采集→标注→模型训练→功能集成→界面开发”的毕设全流程,这不仅是技术能力的证明,更是对“技术守护宇宙安全”这一理念的实践。答辩时,你可以重点讲这几点:系统解决了航天监测的哪些痛点、YOLOv5在太空目标检测中的性能优势、系统未来能怎么优化(比如对接航天监测网络、实现实时轨道预测)。未来,这个系统还能往“更智能”的方向发展:比如结合轨道计算预测碰撞风险、开发移动端APP让天文爱好者参与太空垃圾上报、在航天任务中实现全自动避障决策……想象空间很大。

m0_71589036的博客 90

scrapy爬虫框架 (1. Scrapy的基本介绍、使用流程、分组打印、pipelines(管道)使用)、分页爬取

1.scrapy介绍 scrapy是一个为更快爬取网站数据、提取结构性数据而编写的爬虫框架。并且scrapy使用了Twisted异步网络框架,使下载速度更快。 request是模块,模块只能帮助我们发送请求。 scrapy是框架,框架可以帮助我们解决各种需求,其中可能每一个都是模块,框架包含模块。 1.创建项目 通过cmd进入项目存放的文件夹下,然后输入 scrapy startproject [...

随笔 1369

在STM32F103RBT6微控制器上利用USB虚拟Com端口技术,高效实现ADC数据传输:详细操作步骤与示例代码解析

以上就是在STM32F103RBT6上使用USB虚拟Com端口实现ADC数据传输的全部内容。虽然过程中有很多步骤和细节需要注意,但只要按照步骤来,理解每一段代码的作用,就完全可以掌握这个过程。在实际应用中,我们可能需要根据实际需要修改一些代码,如调整ADC的参数,改变数据的处理方式等。但是,只要理解了这个过程,我们就可以很灵活地进行修改。希望这篇文章对你有所帮助。如果你有任何疑问,欢迎在评论区留言,我会尽我所能进行解答。

qq_38334677的博客 1168

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

elasticsearch使用

目录 一. 安装java环境与elasticsearch、kibana 二. elasticsearch、kibana的部分文件说明 三. Kibana的Dev tools中ES的简单命令 四. ES的复杂查询 1.排序sort、分页、布尔查询bool 2.高亮查询highlight 3.结果过滤_source 4.聚合查询 5. ES的ma...

ddxs64451的博客 477

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

python爬取csdn最新文章

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34198797的博客 334

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

scrapy框架的安装与基本使用,scrapy分页数据的抓取

本章主要是讲解scrapy的安装与基本使用,讲解scrapy的实现基本流程,以及如何使用scrapy进行分页抓取数据

qq_63713328的博客 2156

小说爬虫-01 Scrapy 爬虫完整教程:用 Python 高效爬取笔趣阁小说排行榜(附源码)

Scrapy 是一款由 Python 编写的高性能网络爬虫框架,具备异步处理、模块化架构和强大的扩展能力,非常适合构建大规模数据采集系统。其核心组件包括引擎、调度器、下载器、爬虫和数据管道,通过协同工作实现从请求调度到数据存储的全自动流程。Scrapy 支持 XPath、CSS 选择器及正则表达式,可灵活解析网页内容,并通过中间件系统实现请求重试、限速、代理、UA 伪装等功能。内置管道可轻松将数据输出为 JSON、CSV 或存入数据库。本文以“笔趣阁小说排行榜”为例,展示了如何利用 Scrapy 与 SQL

谢谢你的喜欢 我们一起无限进步 3199

python从txt拿取数据_python requests + xpath 获取分页详情页数据存入到txt文件中

直接代码,如有不懂请加群讨论# *-* coding:utf-8 *-* #import jsonimport requestsimport pytesseractimport timeimport datetimefrom PIL import Imagefrom bs4 import BeautifulSoupimport urllib3import randomimport osfrom ...

weixin_39588911的博客 174

python requests cookie保存_空中直播学习python爬虫计算机技术(本科教育实战技术)

一、爬虫是什么(一)爬虫定义 网络爬虫是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。​ 简单地说:就是用事先写好的程序去抓取网络上所需的数据,这样的程序就叫网络爬虫。编写网络爬虫的程序员叫做爬虫工程师。(二)爬虫分类根据使用场景,网络爬虫可分为通用爬虫和聚焦爬虫两种。1、通用爬虫(了解)​ 通用网络爬虫是捜索引擎抓取系统(Baidu、Google、Yahoo等)的重要组成部分。主要目的...

weixin_39851918的博客 362
上一篇: java springboot 时间格式序列化 UTC8
下一篇: springboot项目如何引入线程池
bxp1321
博客等级 码龄17年 146粉丝 86原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值