首页 > 编程语言 >trafilatura python web 数据获取库

trafilatura python web 数据获取库

时间:2024-09-14 10:22:30浏览次数:13  
标签:web retry trafilatura last python content result return

trafilatura python web 数据获取库,比较适合进行爬虫,数据提取,支持输出数据为csv,json,html,md,txt,xml

包含的特性

  • 高级web 爬虫以及文本发现
  • 并行处理在线以及离线输入内容
  • 灵活的配置支持,包含了元数据,格式,链接,表格
  • 多输出格式,包含了文本,markdown,json,html,xml
  • 额外扩展,支持语言检测,gui,速度优化

参考使用

集成了tenacity 的一个示例

  • demo.py

主要是集成了tenacity retry 能力,测试trafilatura 的web content markdown 效果,因为实际我们进行爬取肯定会有异常的,这样能提升数据爬取的质量

from trafilatura import extract,fetch_url
 
from  tenacity import *
 
def content(url:str):
    downloaded = fetch_url(url)
    result  = extract(downloaded,include_images=True, output_format="markdown", with_metadata=True)
    print(result)
    return  {
        'result': result,
        'title': "rongfengliang-荣锋亮",
    }
 
 
def return_last_value(retry_state):
    print("return_last_value",retry_state)
    return retry_state.outcome.result()
 
def is_rongfengliang(content):
    print("is_rongfengliang",content)
    return content is not None and content.get("title") =="rongfengliang-荣锋亮"
 
# will return False after trying 3 times to get a different result
@retry(
       stop=stop_after_attempt(3),
       retry_error_callback=return_last_value,
       retry=retry_if_result(is_rongfengliang))
def eventually_return_false():
    result = content("https://www.cn.com/rongfengliang/p/18280856")
    return result
 
 
return_last_value = eventually_return_false()
 
print("return_last_value",return_last_value)

 

说明

在基于RAG 的系统开发中,如何提升web content 内容的质量数据提取,内容格式都是比较重要的,trafilatura 是一个值得尝试的工具,效果还是很不错的,对于html 中噪音可以很好的处理

参考资料

https://github.com/adbar/trafilatura
https://trafilatura.readthedocs.io/en/latest/
https://github.com/jd/tenacity
http://tenacity.readthedocs.io/

标签:web,retry,trafilatura,last,python,content,result,return
From: https://blog.51cto.com/rongfengliang/12015041

相关文章

  • 基于CNN-LSTM-Attention的共享单车租赁预测研究(数据可换)(Python代码实现)基于CNN-LSTM
                        ......
  • python 时间占位符 毫秒
    在Python中,可以使用datetime模块来处理时间和日期,并结合strftime方法来格式化时间字符串,包括毫秒。strftime方法中使用%f来表示微秒,要表示毫秒,需要对获取到的微秒数除以1000,然后格式化为3位数字。以下是一个示例代码,展示如何获取当前时间,并使用strftime格式化时间,包括毫秒:fromdate......
  • 当代码遇上“意外”:Python中的异常引发艺术
    引言异常处理是软件开发不可或缺的一部分。良好的异常管理不仅能够提升程序的稳定性与可靠性,还能显著改善用户体验。在Python中,“异常的引发”是指主动抛出一个错误信息,以通知调用者当前操作出现了问题。掌握这一技巧,对于编写高效、可维护的代码至关重要。基础语法介绍在Python......
  • Python 入门教程(3)基础知识 | 3.2、数据类型、变量与常量
    文章目录一、数据类型、变量与常量1、数据类型2、变量3、常量一、数据类型、变量与常量1、数据类型Python的数据类型可以分为不可变类型和可变类型。不可变类型包括整数、浮点数、布尔值和元组,一旦创建,其值就不能改变。可变类型包括列表、字典和集合,它们的值可以......
  • Python中的“Try...Except...Finally”:掌握异常处理的艺术
    在编程的世界里,错误与异常就像是旅途中的迷雾,虽然不可避免,但通过正确的导航工具,我们可以安全地穿越。Python作为一种广泛使用的编程语言,提供了丰富的工具来帮助我们处理这些异常情况,其中之一便是“Try...Except...Finally”结构。本文将带你深入了解这一机制的核心概念、实际应用以......
  • Tomcat_使用IDEA开发javaWeb工程并部署运用
    目录1.配置文件点击fileprojectStructure   配置SDK和languagelevel的语言版本一致。apply然后ok。2.然后点击web-all创建一个moudle叫做demo02-web02。 3.这仅仅是一个java的目录结构,我们需要把他转换成javaweb的结构。所以我们需要添加web资源组件。右击demo02-......
  • 强!推荐一款Python开源自动化脚本工具:AutoKey!
    1、前言在数字化时代,自动化工具成为了提升工作效率和生产力的重要手段。Python作为一种广泛使用的编程语言,以其强大的功能和易用性受到许多开发者的青睐。而今天给大家推荐一款开源的自动化脚本工具:AutoKey。结合Python的强大编程能力与AutoKey的任务自动化特性,用户可以高效地......
  • 软件设计之JavaWeb(2)
    软件设计之JavaWeb(2)此篇应在MySQL之后进行学习:路线图推荐:【Java学习路线-极速版】【Java架构师技术图谱】尚硅谷全新JavaWeb教程,企业主流javaweb技术栈资料可以去尚硅谷官网免费领取此章节最好学完JDBC观看学习内容:HTTP简介Servlet1、HTTP简介交互的方式:请求......
  • Python项目虚拟环境(超详细讲解)
    课程推荐我的个人主页:......
  • 【Python爬虫系列】_016.关于登录和验证码
    我的个人主页:......