Python之yabormeparser包语法、参数和实际应用案例
Python yabormeparser 包完整详解yabormeparser是轻量级、纯Python实现的BORME解析库BORME是西班牙官方的商业登记公告系统Boletín Oficial del Registro Mercantil该包专门用于解析、提取、结构化BORME官方XML/HTML格式公告数据无需复杂的XML/HTML原生解析逻辑直接获取标准化的企业、法人、公告、登记等核心信息。一、核心功能格式兼容原生支持BORME官方XML、HTML、压缩包ZIP格式文件解析数据结构化将非结构化的官方公告转为Python字典/对象字段标准化核心数据提取企业基础信息名称、税号、地址、登记号法人/股东/高管信息姓名、身份证号、职位公告元数据公告编号、发布日期、公告类型、页码商业登记操作增资、减资、章程修改、合并、注销等批量处理支持批量解析文件夹内的BORME文件无外部依赖纯Python编写仅依赖标准库轻量无环境冲突二、安装方法1. 标准pip安装推荐pipinstallyabormeparser2. 源码安装开发版gitclone https://github.com/yourrepo/yabormeparser.gitcdyabormeparser python setup.pyinstall3. 验证安装打开Python终端执行以下代码无报错即安装成功importyabormeparserprint(yabormeparser.__version__)# 输出版本号三、基础语法与核心参数1. 核心类类名作用BORMEParser主解析器解析单个/批量BORME文件BORMEAnnouncement公告对象存储单条公告的结构化数据BORMECompany企业对象存储企业核心信息BORMEPerson自然人对象存储法人/股东/高管信息2. 基础语法模板# 1. 导入核心类fromyabormeparserimportBORMEParser# 2. 初始化解析器parserBORMEParser()# 3. 解析文件单文件/批量文件# 单文件解析announcementsparser.parse_file(borme_2024_123.xml)# 批量解析文件夹announcementsparser.parse_folder(borme_files/)# 4. 遍历解析结果foranninannouncements:print(公告编号:,ann.id)print(发布日期:,ann.date)print(企业名称:,ann.company.name)print(公告类型:,ann.type)3. 核心参数详解1parse_file()参数参数类型说明file_pathstr必传BORME文件路径支持.xml/.html/.zipencodingstr可选文件编码默认utf-8strictbool可选严格模式默认False解析失败跳过错误2parse_folder()参数参数类型说明folder_pathstr必传BORME文件所在文件夹路径recursivebool可选递归遍历子文件夹默认Falsefile_extlist可选解析文件类型默认[xml, html, zip]3公告对象BORMEAnnouncement核心属性属性说明id公告唯一编号date公告发布日期datetime对象type公告类型增资/注销/章程修改等company关联企业对象BORMECompanypersons关联自然人列表BORMEPersoncontent公告原文内容page公告页码四、8个实际应用案例案例1解析单个BORME XML文件提取企业基础信息场景获取单条公告中的企业名称、税号、登记地址fromyabormeparserimportBORMEParser# 初始化解析器parserBORMEParser()# 解析XML文件announcementsparser.parse_file(borme_2024_050.xml)# 遍历结果并输出企业信息foranninannouncements:companyann.companyprint(f 企业信息 )print(f企业名称{company.name})print(f税号NIF{company.nif})print(f登记号{company.registration_number})print(f注册地址{company.address})print(f公告日期{ann.date.strftime(%Y-%m-%d)})案例2解析BORME HTML文件提取公告类型场景从网页版BORME公告中提取商业操作类型增资、注销等fromyabormeparserimportBORMEParser parserBORMEParser()# 解析HTML格式公告announcementsparser.parse_file(borme_2024_050.html)foranninannouncements:print(f公告编号{ann.id})print(f商业操作类型{ann.type})# 输出AUMENTO DE CAPITAL增资等print(f公告原文摘要{ann.content[:100]}...)案例3批量解析文件夹中所有BORME文件场景批量处理一年的BORME公告数据汇总所有企业fromyabormeparserimportBORMEParser parserBORMEParser()# 递归解析文件夹下所有BORME文件announcementsparser.parse_folder(folder_path./borme_2024/,recursiveTrue,file_ext[xml,html])# 统计企业数量company_setset()foranninannouncements:ifann.company:company_set.add(ann.company.name)print(f共解析到{len(announcements)}条公告)print(f涉及企业总数{len(company_set)}家)案例4提取公告中的法人/高管信息场景获取企业法人、股东、董事的姓名、证件号fromyabormeparserimportBORMEParser parserBORMEParser()announcementsparser.parse_file(borme_2024_050.xml)foranninannouncements:print(f\n{ann.company.name}人员信息 )# 遍历所有关联自然人forpersoninann.persons:print(f姓名{person.name})print(f证件号{person.id_number})print(f职位{person.position})print(-*20)案例5解析ZIP压缩包中的BORME文件场景官方下载的BORME压缩包直接解析无需解压fromyabormeparserimportBORMEParser parserBORMEParser()# 直接解析ZIP压缩包announcementsparser.parse_file(borme_2024_full.zip)print(f压缩包内共解析到{len(announcements)}条公告)案例6筛选指定日期的公告场景提取2024年1月1日之后发布的所有公告fromyabormeparserimportBORMEParserfromdatetimeimportdatetime parserBORMEParser()announcementsparser.parse_folder(./borme_2024/)# 筛选条件target_datedatetime(2024,1,1)filtered_anns[annforanninannouncementsifann.datetarget_date]print(f2024年之后的公告数量{len(filtered_anns)})案例7将解析结果保存为JSON文件场景结构化数据导出为JSON用于数据分析/数据库存储fromyabormeparserimportBORMEParserimportjson parserBORMEParser()announcementsparser.parse_file(borme_2024_050.xml)# 转换为可序列化的字典列表result[ann.to_dict()foranninannouncements]# 保存为JSONwithopen(borme_result.json,w,encodingutf-8)asf:json.dump(result,f,ensure_asciiFalse,indent2)print(数据已保存为 borme_result.json)案例8统计公告类型分布场景分析商业操作类型占比增资、注销、章程修改等fromyabormeparserimportBORMEParserfromcollectionsimportCounter parserBORMEParser()announcementsparser.parse_folder(./borme_2024/)# 统计公告类型type_list[ann.typeforanninannouncementsifann.type]type_counterCounter(type_list)print( 公告类型统计 )forann_type,countintype_counter.items():print(f{ann_type}{count}条)五、常见错误与解决方案错误信息原因解决方案FileNotFoundError文件路径错误/文件不存在检查路径是否正确使用绝对路径UnicodeDecodeError文件编码与默认编码不匹配解析时指定encodingiso-8859-1西语编码AttributeError: NoneType object has no attribute name公告无关联企业信息增加判断if ann.company is not NoneParseError: Invalid BORME file文件不是标准BORME格式确认文件为官方BORME XML/HTML关闭严格模式strictFalsePermissionError文件夹/文件无读取权限修改文件权限以管理员身份运行MemoryError批量解析超大文件分批次解析避免一次性加载全部文件六、使用注意事项文件来源仅支持西班牙官方BORME平台下载的文件第三方文件解析会失败编码问题西语文件优先使用encodingiso-8859-1或encodingwindows-1252严格模式生产环境建议strictFalse避免单个文件错误导致程序中断数据完整性部分老旧公告缺少字段解析前需做非空判断日期格式ann.date是datetime对象可直接格式化/计算批量解析文件夹路径避免中文/空格优先使用英文路径版本兼容支持Python 3.7低版本Python会报错数据合规BORME数据受西班牙隐私法保护仅用于合法用途总结yabormeparser是西班牙BORME商业公告专用解析库纯Python、无依赖、轻量高效核心能力解析XML/HTML/ZIP格式BORME文件结构化提取企业、人员、公告信息支持单文件/批量/递归/压缩包解析满足自动化数据处理需求8个案例覆盖基础解析、批量处理、数据提取、导出、统计全场景使用时注意文件编码、路径、非空判断、数据合规可规避90%以上错误《动手学PyTorch建模与应用:从深度学习到大模型》是一本从零基础上手深度学习和大模型的PyTorch实战指南。全书共11章前6章涵盖深度学习基础包括张量运算、神经网络原理、数据预处理及卷积神经网络等后5章进阶探讨图像、文本、音频建模技术并结合Transformer架构解析大语言模型的开发实践。书中通过房价预测、图像分类等案例讲解模型构建方法每章附有动手练习题帮助读者巩固实战能力。内容兼顾数学原理与工程实现适配PyTorch框架最新技术发展趋势。