[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"tool-adbar--trafilatura":3,"similar-adbar--trafilatura":204},{"id":4,"github_repo":5,"name":6,"description_en":7,"description_zh":8,"ai_summary_zh":8,"readme_en":9,"readme_zh":10,"quickstart_zh":11,"use_case_zh":12,"hero_image_url":13,"owner_login":14,"owner_name":15,"owner_avatar_url":16,"owner_bio":17,"owner_company":18,"owner_location":19,"owner_email":18,"owner_twitter":18,"owner_website":20,"owner_url":21,"languages":22,"stars":27,"forks":28,"last_commit_at":29,"license":30,"difficulty_score":31,"env_os":32,"env_gpu":33,"env_ram":33,"env_deps":34,"category_tags":43,"github_topics":48,"view_count":69,"oss_zip_url":18,"oss_zip_packed_at":18,"status":70,"created_at":71,"updated_at":72,"faqs":73,"releases":103},4180,"adbar\u002Ftrafilatura","trafilatura","Python & Command-line tool to gather text and metadata on the Web: Crawling, scraping, extraction, output as CSV, JSON, HTML, MD, TXT, XML","Trafilatura 是一款强大的 Python 库与命令行工具，专为从互联网高效采集文本和元数据而设计。它能将杂乱的原始 HTML 网页转化为结构清晰、内容纯净的数据，支持直接输出为 CSV、JSON、Markdown、TXT 等多种常用格式。\n\n在网页数据采集过程中，用户常面临广告、导航栏、页脚等“噪音”干扰，导致提取内容质量低下。Trafilatura 通过智能算法精准识别并提取正文核心、标题、作者、发布日期及评论等关键信息，有效过滤无关元素，在确保高准确率的同时兼顾内容的完整性，显著提升了数据清洗的效率。\n\n这款工具非常适合开发者、数据科学家、自然语言处理研究人员以及需要构建大规模语料库的机构使用。无论是进行实时网址爬取，还是批量处理本地已下载的 HTML 文件，Trafilatura 都能轻松应对。其技术亮点在于集成了先进的爬虫策略（如站点地图和 RSS 订阅源支持）、并行处理能力，以及平衡精度与召回率的提取算法。凭借稳健的性能和模块化设计，它已被 HuggingFace、微软研究院及多所知名高校广泛应用于各类前沿项目中，是网页文本挖掘领域的可靠选择。","# Trafilatura: Discover and Extract Text Data on the Web\n\n\u003Cbr\u002F>\n\n\u003Cimg alt=\"Trafilatura Logo\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fadbar_trafilatura_readme_75ceb9267b43.png\" align=\"center\" width=\"60%\"\u002F>\n\n\u003Cbr\u002F>\n\n[![Python package](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fv\u002Ftrafilatura.svg)](https:\u002F\u002Fpypi.python.org\u002Fpypi\u002Ftrafilatura)\n[![Python versions](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fpyversions\u002Ftrafilatura.svg)](https:\u002F\u002Fpypi.python.org\u002Fpypi\u002Ftrafilatura)\n[![Documentation Status](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fadbar_trafilatura_readme_13d664e1afd7.png)](http:\u002F\u002Ftrafilatura.readthedocs.org\u002Fen\u002Flatest\u002F?badge=latest)\n[![Code Coverage](https:\u002F\u002Fimg.shields.io\u002Fcodecov\u002Fc\u002Fgithub\u002Fadbar\u002Ftrafilatura.svg)](https:\u002F\u002Fcodecov.io\u002Fgh\u002Fadbar\u002Ftrafilatura)\n[![Downloads](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fadbar_trafilatura_readme_0c880a276990.png)](https:\u002F\u002Fpepy.tech\u002Fproject\u002Ftrafilatura)\n[![Reference DOI: 10.18653\u002Fv1\u002F2021.acl-demo.15](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FDOI-10.18653%2Fv1%2F2021.acl--demo.15-blue)](https:\u002F\u002Faclanthology.org\u002F2021.acl-demo.15\u002F)\n\n\u003Cbr\u002F>\n\n\u003Cimg alt=\"Demo as GIF image\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fadbar_trafilatura_readme_a97ddf700979.gif\" align=\"center\" width=\"80%\"\u002F>\n\n\u003Cbr\u002F>\n\n\n## Introduction\n\nTrafilatura is a cutting-edge **Python package and command-line tool**\ndesigned to **gather text on the Web and simplify the process of turning\nraw HTML into structured, meaningful data**. It includes all necessary\ndiscovery and text processing components to perform **web crawling,\ndownloads, scraping, and extraction** of main texts, metadata and\ncomments. It aims at staying **handy and modular**: no database is\nrequired, the output can be converted to commonly used formats.\n\nGoing from HTML bulk to essential parts can alleviate many problems\nrelated to text quality, by **focusing on the actual content**,\n**avoiding the noise** caused by recurring elements like headers and footers\nand by **making sense of the data and metadata** with selected information.\nThe extractor strikes a balance between limiting noise (precision) and\nincluding all valid parts (recall). It is **robust and reasonably fast**.\n\nTrafilatura is [widely used](https:\u002F\u002Ftrafilatura.readthedocs.io\u002Fen\u002Flatest\u002Fused-by.html)\nand integrated into [thousands of projects](https:\u002F\u002Fgithub.com\u002Fadbar\u002Ftrafilatura\u002Fnetwork\u002Fdependents)\nby companies like HuggingFace, IBM, and Microsoft Research as well as institutions like\nthe Allen Institute, Stanford, the Tokyo Institute of Technology, and\nthe University of Munich.\n\n\n### Features\n\n- Advanced web crawling and text discovery:\n   - Support for sitemaps (TXT, XML) and feeds (ATOM, JSON, RSS)\n   - Smart crawling and URL management (filtering and deduplication)\n\n- Parallel processing of online and offline input:\n   - Live URLs, efficient and polite processing of download queues\n   - Previously downloaded HTML files and parsed HTML trees\n\n- Robust and configurable extraction of key elements:\n   - Main text (common patterns and generic algorithms like jusText and readability)\n   - Metadata (title, author, date, site name, categories and tags)\n   - Formatting and structure: paragraphs, titles, lists, quotes, code, line breaks, in-line text formatting\n   - Optional elements: comments, links, images, tables\n\n- Multiple output formats:\n   - TXT and Markdown\n   - CSV\n   - JSON\n   - HTML, XML and [XML-TEI](https:\u002F\u002Ftei-c.org\u002F)\n\n- Optional add-ons:\n   - Language detection on extracted content\n   - Speed optimizations\n\n- Actively maintained with support from the open-source community:\n   - Regular updates, feature additions, and optimizations\n   - Comprehensive documentation\n\n\n### Evaluation and alternatives\n\nTrafilatura consistently outperforms other open-source libraries in text\nextraction benchmarks, showcasing its efficiency and accuracy in\nextracting web content. The extractor tries to strike a balance between\nlimiting noise and including all valid parts.\n\nFor more information see the [benchmark section](https:\u002F\u002Ftrafilatura.readthedocs.io\u002Fen\u002Flatest\u002Fevaluation.html)\nand the [evaluation readme](https:\u002F\u002Fgithub.com\u002Fadbar\u002Ftrafilatura\u002Fblob\u002Fmaster\u002Ftests\u002FREADME.rst)\nto run the evaluation with the latest data and packages.\n\n\n#### Other evaluations:\n\n- Most efficient open-source library in *ScrapingHub*'s [article extraction benchmark](https:\u002F\u002Fgithub.com\u002Fscrapinghub\u002Farticle-extraction-benchmark)\n- Best overall tool according to [Bien choisir son outil d'extraction de contenu à partir du Web](https:\u002F\u002Fhal.archives-ouvertes.fr\u002Fhal-02768510v3\u002Fdocument)\n  (Lejeune & Barbaresi 2020)\n- Best single tool by ROUGE-LSum Mean F1 Page Scores in [An Empirical Comparison of Web Content Extraction Algorithms](https:\u002F\u002Fwebis.de\u002Fdownloads\u002Fpublications\u002Fpapers\u002Fbevendorff_2023b.pdf)\n  (Bevendorff et al. 2023)\n\n\n## Usage and documentation\n\n[Getting started with Trafilatura](https:\u002F\u002Ftrafilatura.readthedocs.io\u002Fen\u002Flatest\u002Fquickstart.html)\nis straightforward. For more information and detailed guides, visit\n[Trafilatura's documentation](https:\u002F\u002Ftrafilatura.readthedocs.io\u002F):\n\n- [Installation](https:\u002F\u002Ftrafilatura.readthedocs.io\u002Fen\u002Flatest\u002Finstallation.html)\n- Usage:\n  [On the command-line](https:\u002F\u002Ftrafilatura.readthedocs.io\u002Fen\u002Flatest\u002Fusage-cli.html),\n  [With Python](https:\u002F\u002Ftrafilatura.readthedocs.io\u002Fen\u002Flatest\u002Fusage-python.html),\n  [With R](https:\u002F\u002Ftrafilatura.readthedocs.io\u002Fen\u002Flatest\u002Fusage-r.html)\n- [Core Python functions](https:\u002F\u002Ftrafilatura.readthedocs.io\u002Fen\u002Flatest\u002Fcorefunctions.html)\n- Interactive Python Notebook: [Trafilatura Overview](docs\u002FTrafilatura_Overview.ipynb)\n- [Tutorials and use cases](https:\u002F\u002Ftrafilatura.readthedocs.io\u002Fen\u002Flatest\u002Ftutorials.html)\n\nYoutube playlist with video tutorials in several languages:\n\n- [Web scraping tutorials and how-tos](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=8GkiOM17t0Q&list=PL-pKWbySIRGMgxXQOtGIz1-nbfYLvqrci)\n\n\n## License\n\nThis package is distributed under the [Apache 2.0 license](https:\u002F\u002Fwww.apache.org\u002Flicenses\u002FLICENSE-2.0.html).\n\nVersions prior to v1.8.0 are under GPLv3+ license.\n\n\n### Contributing\n\nContributions of all kinds are welcome. Visit the [Contributing\npage](https:\u002F\u002Fgithub.com\u002Fadbar\u002Ftrafilatura\u002Fblob\u002Fmaster\u002FCONTRIBUTING.md)\nfor more information. Bug reports can be filed on the [dedicated issue\npage](https:\u002F\u002Fgithub.com\u002Fadbar\u002Ftrafilatura\u002Fissues).\n\nMany thanks to the\n[contributors](https:\u002F\u002Fgithub.com\u002Fadbar\u002Ftrafilatura\u002Fgraphs\u002Fcontributors)\nwho extended the docs or submitted bug reports, features and bugfixes!\n\n\n## Context\n\nThis work started as a PhD project at the crossroads of linguistics and\nNLP, this expertise has been instrumental in shaping Trafilatura over\nthe years. Initially launched to create text databases for research purposes\nat the Berlin-Brandenburg Academy of Sciences (DWDS and ZDL units),\nthis package continues to be maintained but its future depends on community support.\n\n**If you value this software or depend on it for your product, consider\nsponsoring it and contributing to its codebase**. Your support\n[on GitHub](https:\u002F\u002Fgithub.com\u002Fsponsors\u002Fadbar) or [ko-fi.com](https:\u002F\u002Fko-fi.com\u002Fadbarbaresi)\nwill help maintain and enhance this popular package.\n\n*Trafilatura* is an Italian word for [wire\ndrawing](https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FWire_drawing) symbolizing the\nrefinement and conversion process. It is also the way shapes of pasta\nare formed.\n\n### Author\n\nReach out via ia the software repository or the [contact\npage](https:\u002F\u002Fadrien.barbaresi.eu\u002F) for inquiries, collaborations, or\nfeedback. See also social networks for the latest updates.\n\n-   Barbaresi, A. [Trafilatura: A Web Scraping Library and Command-Line\n    Tool for Text Discovery and\n    Extraction](https:\u002F\u002Faclanthology.org\u002F2021.acl-demo.15\u002F), Proceedings\n    of ACL\u002FIJCNLP 2021: System Demonstrations, 2021, p. 122-131.\n-   Barbaresi, A. \"[Generic Web Content Extraction with Open-Source\n    Software](https:\u002F\u002Fhal.archives-ouvertes.fr\u002Fhal-02447264\u002Fdocument)\",\n    Proceedings of KONVENS 2019, Kaleidoscope Abstracts, 2019.\n-   Barbaresi, A. \"[Efficient construction of metadata-enhanced web\n    corpora](https:\u002F\u002Fhal.archives-ouvertes.fr\u002Fhal-01371704v2\u002Fdocument)\",\n    Proceedings of the [10th Web as Corpus Workshop\n    (WAC-X)](https:\u002F\u002Fwww.sigwac.org.uk\u002Fwiki\u002FWAC-X), 2016.\n\n\n### Citing Trafilatura\n\nTrafilatura is widely used in the academic domain, chiefly for data\nacquisition. Here is how to cite it:\n\n[![Reference DOI: 10.18653\u002Fv1\u002F2021.acl-demo.15](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FDOI-10.18653%2Fv1%2F2021.acl--demo.15-blue)](https:\u002F\u002Faclanthology.org\u002F2021.acl-demo.15\u002F)\n[![Zenodo archive DOI: 10.5281\u002Fzenodo.3460969](https:\u002F\u002Fzenodo.org\u002Fbadge\u002FDOI\u002F10.5281\u002Fzenodo.3460969.svg)](https:\u002F\u002Fdoi.org\u002F10.5281\u002Fzenodo.3460969)\n\n``` shell\n@inproceedings{barbaresi-2021-trafilatura,\n  title = {{Trafilatura: A Web Scraping Library and Command-Line Tool for Text Discovery and Extraction}},\n  author = \"Barbaresi, Adrien\",\n  booktitle = \"Proceedings of the Joint Conference of the 59th Annual Meeting of the Association for Computational Linguistics and the 11th International Joint Conference on Natural Language Processing: System Demonstrations\",\n  pages = \"122--131\",\n  publisher = \"Association for Computational Linguistics\",\n  url = \"https:\u002F\u002Faclanthology.org\u002F2021.acl-demo.15\",\n  year = 2021,\n}\n```\n\n\n### Software ecosystem\n\nJointly developed plugins and additional packages also contribute to the\nfield of web data extraction and analysis:\n\n\u003Cimg alt=\"Software ecosystem\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fadbar_trafilatura_readme_8efd2c768339.png\" align=\"center\" width=\"65%\"\u002F>\n\nCorresponding posts can be found on [Bits of\nLanguage](https:\u002F\u002Fadrien.barbaresi.eu\u002Fblog\u002Ftag\u002Ftrafilatura.html).\n\nImpressive, you have reached the end of the page: Thank you for your\ninterest!\n","# Trafilatura：发现并提取网络上的文本数据\n\n\u003Cbr\u002F>\n\n\u003Cimg alt=\"Trafilatura Logo\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fadbar_trafilatura_readme_75ceb9267b43.png\" align=\"center\" width=\"60%\"\u002F>\n\n\u003Cbr\u002F>\n\n[![Python 包](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fv\u002Ftrafilatura.svg)](https:\u002F\u002Fpypi.python.org\u002Fpypi\u002Ftrafilatura)\n[![Python 版本](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fpyversions\u002Ftrafilatura.svg)](https:\u002F\u002Fpypi.python.org\u002Fpypi\u002Ftrafilatura)\n[![文档状态](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fadbar_trafilatura_readme_13d664e1afd7.png)](http:\u002F\u002Ftrafilatura.readthedocs.org\u002Fen\u002Flatest\u002F?badge=latest)\n[![代码覆盖率](https:\u002F\u002Fimg.shields.io\u002Fcodecov\u002Fc\u002Fgithub\u002Fadbar\u002Ftrafilatura.svg)](https:\u002F\u002Fcodecov.io\u002Fgh\u002Fadbar\u002Ftrafilatura)\n[![下载量](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fadbar_trafilatura_readme_0c880a276990.png)](https:\u002F\u002Fpepy.tech\u002Fproject\u002Ftrafilatura)\n[![引用 DOI: 10.18653\u002Fv1\u002F2021.acl-demo.15](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FDOI-10.18653%2Fv1%2F2021.acl--demo.15-blue)](https:\u002F\u002Faclanthology.org\u002F2021.acl-demo.15\u002F)\n\n\u003Cbr\u002F>\n\n\u003Cimg alt=\"演示 GIF 图片\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fadbar_trafilatura_readme_a97ddf700979.gif\" align=\"center\" width=\"80%\"\u002F>\n\n\u003Cbr\u002F>\n\n\n## 简介\n\nTrafilatura 是一款尖端的 **Python 库和命令行工具**，旨在 **从网络上收集文本，并简化将原始 HTML 转换为结构化、有意义数据的过程**。它包含了执行 **网络爬取、下载、抓取和提取** 主要文本、元数据及评论所需的所有必要组件。其设计目标是保持 **便捷性和模块化**：无需数据库，输出可转换为常用格式。\n\n从大量 HTML 中提取关键内容，能够有效缓解许多与文本质量相关的问题，通过 **聚焦实际内容**、**避免由页眉、页脚等重复元素带来的噪声**，以及 **利用精选信息对数据和元数据进行合理解读** 来实现。该提取器在减少噪声（精确度）和包含所有有效部分（召回率）之间取得了良好的平衡。它具有 **鲁棒性且速度较快**。\n\nTrafilatura 已被 [广泛使用](https:\u002F\u002Ftrafilatura.readthedocs.io\u002Fen\u002Flatest\u002Fused-by.html)，并集成到 [数千个项目](https:\u002F\u002Fgithub.com\u002Fadbar\u002Ftrafilatura\u002Fnetwork\u002Fdependents) 中，合作公司包括 HuggingFace、IBM 和微软研究院，以及艾伦研究所、斯坦福大学、东京工业大学和慕尼黑大学等机构。\n\n\n### 特性\n\n- 高级网页爬取与文本发现：\n   - 支持站点地图（TXT、XML）和信息源（ATOM、JSON、RSS）\n   - 智能爬取与 URL 管理（过滤与去重）\n\n- 在线与离线输入的并行处理：\n   - 实时 URL，高效且礼貌地处理下载队列\n   - 之前下载的 HTML 文件及已解析的 HTML 树\n\n- 关键元素的稳健且可配置提取：\n   - 主要文本（基于常见模式及 jusText、Readability 等通用算法）\n   - 元数据（标题、作者、日期、网站名称、分类与标签）\n   - 格式与结构：段落、标题、列表、引用、代码、换行符、内联文本格式\n   - 可选元素：评论、链接、图片、表格\n\n- 多种输出格式：\n   - TXT 和 Markdown\n   - CSV\n   - JSON\n   - HTML、XML 以及 [XML-TEI](https:\u002F\u002Ftei-c.org\u002F)\n\n- 可选插件：\n   - 提取内容的语言检测\n   - 速度优化\n\n- 积极维护，并得到开源社区的支持：\n   - 定期更新、功能添加与优化\n   - 详尽的文档\n\n\n### 评估与替代方案\n\n在文本提取基准测试中，Trafilatura 始终优于其他开源库，展现出其在提取网络内容方面的高效性和准确性。该提取器力求在减少噪声和包含所有有效部分之间取得平衡。\n\n更多信息请参阅 [基准测试章节](https:\u002F\u002Ftrafilatura.readthedocs.io\u002Fen\u002Flatest\u002Fevaluation.html) 以及 [评估自述文件](https:\u002F\u002Fgithub.com\u002Fadbar\u002Ftrafilatura\u002Fblob\u002Fmaster\u002Ftests\u002FREADME.rst)，以使用最新数据和软件包运行评估。\n\n\n#### 其他评估：\n\n- 在 *ScrapingHub* 的 [文章提取基准测试](https:\u002F\u002Fgithub.com\u002Fscrapinghub\u002Farticle-extraction-benchmark) 中，是最高效的开源库。\n- 根据 [Bien choisir son outil d'extraction de contenu à partir du Web](https:\u002F\u002Fhal.archives-ouvertes.fr\u002Fhal-02768510v3\u002Fdocument)（Lejeune & Barbaresi 2020），是最佳综合工具。\n- 在 [An Empirical Comparison of Web Content Extraction Algorithms](https:\u002F\u002Fwebis.de\u002Fdownloads\u002Fpublications\u002Fpapers\u002Fbevendorff_2023b.pdf)（Bevendorff 等 2023）中，以 ROUGE-LSum 平均 F1 分数位居单个工具之首。\n\n\n## 使用与文档\n\n[开始使用 Trafilatura](https:\u002F\u002Ftrafilatura.readthedocs.io\u002Fen\u002Flatest\u002Fquickstart.html) 非常简单。如需更多信息和详细指南，请访问 [Trafilatura 文档](https:\u002F\u002Ftrafilatura.readthedocs.io\u002F)：\n\n- [安装](https:\u002F\u002Ftrafilatura.readthedocs.io\u002Fen\u002Flatest\u002Finstallation.html)\n- 使用方法：\n  [命令行](https:\u002F\u002Ftrafilatura.readthedocs.io\u002Fen\u002Flatest\u002Fusage-cli.html)、\n  [Python](https:\u002F\u002Ftrafilatura.readthedocs.io\u002Fen\u002Flatest\u002Fusage-python.html)、\n  [R](https:\u002F\u002Ftrafilatura.readthedocs.io\u002Fen\u002Flatest\u002Fusage-r.html)\n- [核心 Python 函数](https:\u002F\u002Ftrafilatura.readthedocs.io\u002Fen\u002Flatest\u002Fcorefunctions.html)\n- 交互式 Python 笔记本：[Trafilatura 概览](docs\u002FTrafilatura_Overview.ipynb)\n- [教程与用例](https:\u002F\u002Ftrafilatura.readthedocs.io\u002Fen\u002Flatest\u002Ftutorials.html)\n\n多语言视频教程 YouTube 播放列表：\n\n- [网页抓取教程与操作指南](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=8GkiOM17t0Q&list=PL-pKWbySIRGMgxXQOtGIz1-nbfYLvqrci)\n\n\n## 许可证\n\n本软件包采用 [Apache 2.0 许可证](https:\u002F\u002Fwww.apache.org\u002Flicenses\u002FLICENSE-2.0.html) 发布。\n\nv1.8.0 之前的版本则采用 GPLv3+ 许可证。\n\n\n### 贡献\n\n欢迎各类贡献。更多信息请访问 [贡献页面](https:\u002F\u002Fgithub.com\u002Fadbar\u002Ftrafilatura\u002Fblob\u002Fmaster\u002FCONTRIBUTING.md)。漏洞报告可在 [专用问题页面](https:\u002F\u002Fgithub.com\u002Fadbar\u002Ftrafilatura\u002Fissues) 上提交。\n\n衷心感谢所有扩展文档或提交漏洞报告、新功能和修复补丁的 [贡献者](https:\u002F\u002Fgithub.com\u002Fadbar\u002Ftrafilatura\u002Fgraphs\u002Fcontributors)!\n\n## 背景\n\n本项目最初作为语言学与自然语言处理交叉领域的博士研究课题启动，这些专业知识多年来对 Trafilatura 的发展起到了关键作用。该项目最初旨在为柏林-勃兰登堡科学院（DWDS 和 ZDL 部门）的研究目的创建文本数据库。尽管该软件包目前仍在维护中，但其未来的发展取决于社区的支持。\n\n**如果您重视这款软件或将其用于您的产品，请考虑为其提供赞助并参与代码贡献**。您在 [GitHub](https:\u002F\u002Fgithub.com\u002Fsponsors\u002Fadbar) 或 [ko-fi.com](https:\u002F\u002Fko-fi.com\u002Fadbarbaresi) 上的支持将有助于维护和改进这一广受欢迎的工具。\n\n“Trafilatura” 是意大利语中“拉丝”的意思，象征着提炼与转换的过程，同时也指代意大利面的成型工艺。\n\n### 作者\n\n如需咨询、合作或反馈，请通过软件仓库或[联系页面](https:\u002F\u002Fadrien.barbaresi.eu\u002F)与我取得联系。更多最新动态请关注我的社交媒体账号。\n\n- Barbaresi, A. [Trafilatura：用于文本发现与提取的网络爬虫库及命令行工具](https:\u002F\u002Faclanthology.org\u002F2021.acl-demo.15\u002F)，ACL\u002FIJCNLP 2021 系统演示会议论文集，2021 年，第 122–131 页。\n- Barbaresi, A. “[使用开源软件进行通用网页内容提取](https:\u002F\u002Fhal.archives-ouvertes.fr\u002Fhal-02447264\u002Fdocument)”，KONVENS 2019 大会论文集，万花筒摘要，2019 年。\n- Barbaresi, A. “[高效构建元数据增强型网络语料库](https:\u002F\u002Fhal.archives-ouvertes.fr\u002Fhal-01371704v2\u002Fdocument)”，[第十届网络作为语料库研讨会 (WAC-X)](https:\u002F\u002Fwww.sigwac.org.uk\u002Fwiki\u002FWAC-X)，2016 年。\n\n### 如何引用 Trafilatura\n\nTrafilatura 在学术界被广泛应用于数据采集领域。引用方式如下：\n\n[![参考 DOI：10.18653\u002Fv1\u002F2021.acl-demo.15](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FDOI-10.18653%2Fv1%2F2021.acl--demo.15-blue)](https:\u002F\u002Faclanthology.org\u002F2021.acl-demo.15\u002F)\n[![Zenodo 存档 DOI：10.5281\u002Fzenodo.3460969](https:\u002F\u002Fzenodo.org\u002Fbadge\u002FDOI\u002F10.5281\u002Fzenodo.3460969.svg)](https:\u002F\u002Fdoi.org\u002F10.5281\u002Fzenodo.3460969)\n\n``` shell\n@inproceedings{barbaresi-2021-trafilatura,\n  title = {{Trafilatura: 用于文本发现与提取的网络爬虫库及命令行工具}},\n  author = {Barbaresi, Adrien},\n  booktitle = {计算语言学协会第 59 届年会暨第 11 届国际自然语言处理联合会议联合会议：系统演示会议论文集},\n  pages = {122--131},\n  publisher = {计算语言学协会},\n  url = {https:\u002F\u002Faclanthology.org\u002F2021.acl-demo.15},\n  year = 2021,\n}\n```\n\n\n### 软件生态体系\n\n我们共同开发的插件及其他扩展包也为网络数据抽取与分析领域做出了重要贡献：\n\n\u003Cimg alt=\"软件生态体系\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fadbar_trafilatura_readme_8efd2c768339.png\" align=\"center\" width=\"65%\"\u002F>\n\n相关文章可在 [Bits of Language](https:\u002F\u002Fadrien.barbaresi.eu\u002Fblog\u002Ftag\u002Ftrafilatura.html) 上找到。\n\n太棒了！您已经阅读到页面的末尾了：感谢您的关注！","# Trafilatura 快速上手指南\n\nTrafilatura 是一款先进的 Python 库和命令行工具，专为从网页中发现并提取高质量文本数据而设计。它能将原始 HTML 转换为结构化的正文、元数据（标题、作者、日期等）及评论，有效去除导航栏、页脚等噪声，广泛应用于数据采集、NLP 预处理及大模型训练数据构建。\n\n## 环境准备\n\n在开始之前，请确保您的开发环境满足以下要求：\n\n*   **操作系统**：支持 Linux、macOS 和 Windows。\n*   **Python 版本**：需要 Python 3.8 或更高版本。\n*   **前置依赖**：\n    *   `pip`：Python 包管理工具。\n    *   （可选）对于中文内容处理，建议安装 `jieba` 以提升分词和语言检测的准确性（非强制，但推荐）。\n\n## 安装步骤\n\n您可以使用 pip 直接安装最新稳定版。国内开发者建议使用清华或阿里云镜像源以加速下载。\n\n**使用官方源安装：**\n```bash\npip install trafilatura\n```\n\n**使用国内镜像源加速安装（推荐）：**\n```bash\npip install trafilatura -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n```\n\n> **注意**：如果需要处理大量并发任务或使用高级功能，可能需要额外安装 `lxml` 和 `cchardet` 等编译型依赖。若安装失败，请先确保系统已安装构建工具（如 Linux 下的 `build-essential` 或 Windows 下的 Visual C++ Build Tools）。\n\n## 基本使用\n\nTrafilatura 支持命令行操作和 Python 代码调用两种方式。\n\n### 1. 命令行使用 (CLI)\n\n这是最快捷的使用方式，适合直接抓取单个网页或批量处理本地 HTML 文件。\n\n**抓取网页并输出纯文本：**\n```bash\ntrafilatura -u https:\u002F\u002Fexample.com -o output.txt\n```\n\n**抓取网页并输出为 Markdown 格式（保留标题、列表等结构）：**\n```bash\ntrafilatura -u https:\u002F\u002Fexample.com --output-format markdown -o output.md\n```\n\n**从本地 HTML 文件提取内容：**\n```bash\ntrafilatura -f input.html -o output.txt\n```\n\n**常用参数说明：**\n*   `-u` : 指定目标 URL。\n*   `-f` : 指定本地输入文件。\n*   `-o` : 指定输出文件路径。\n*   `--output-format` : 设置输出格式（支持 `txt`, `markdown`, `csv`, `json`, `xml` 等）。\n*   `--include-comments` : 可选，提取评论区内容。\n\n### 2. Python 代码调用\n\n在 Python 脚本中集成 Trafilatura，适合构建自定义爬虫或数据处理流水线。\n\n**基础示例：下载并提取文本**\n\n```python\nimport trafilatura\n\n# 目标网址\nurl = \"https:\u002F\u002Fexample.com\"\n\n# 下载页面内容\ndownloaded = trafilatura.download(url)\n\n# 提取正文文本\ntext = trafilatura.extract(downloaded)\n\nprint(text)\n```\n\n**进阶示例：提取结构化数据（含元数据）**\n\n```python\nimport trafilatura\n\nurl = \"https:\u002F\u002Fexample.com\"\ndownloaded = trafilatura.download(url)\n\n# 提取包含元数据的字典对象\nrecord = trafilatura.extract_record(downloaded)\n\nif record:\n    print(f\"标题：{record['title']}\")\n    print(f\"作者：{record['author']}\")\n    print(f\"日期：{record['date']}\")\n    print(f\"正文：{record['text']}\")\nelse:\n    print(\"未提取到有效内容\")\n```\n\n**处理本地 HTML 字符串：**\n\n```python\nimport trafilatura\n\nhtml_content = \"\u003Chtml>\u003Cbody>\u003Ch1>测试标题\u003C\u002Fh1>\u003Cp>这是测试内容。\u003C\u002Fp>\u003C\u002Fbody>\u003C\u002Fhtml>\"\n\n# 直接从字符串提取\ntext = trafilatura.extract(html_content, include_comments=False)\nprint(text)\n```","某新闻分析团队需要每日从数千个不同结构的新闻网站抓取文章正文、发布时间和作者信息，以构建行业舆情数据库。\n\n### 没有 trafilatura 时\n- **清洗成本极高**：抓取的 HTML 包含大量导航栏、广告和页脚噪音，需为每个网站编写独立的正则规则来剔除干扰内容。\n- **元数据提取困难**：发布时间、作者等关键信息隐藏在复杂的 DOM 结构中，传统解析器经常遗漏或提取错误。\n- **维护噩梦**：一旦目标网站改版，原有的提取脚本立即失效，团队需投入大量人力反复修补代码。\n- **格式转换繁琐**：原始数据杂乱无章，后续还需额外编写代码将其统一转换为 CSV 或 JSON 供分析模型使用。\n\n### 使用 trafilatura 后\n- **智能去噪提纯**：trafilatura 自动识别并提取核心正文，精准过滤头部、尾部及广告干扰，无需针对单站定制规则。\n- **元数据一键获取**：内置算法能自动发现并结构化输出标题、作者、日期及分类标签，显著提升数据完整性。\n- **鲁棒性强免维护**：面对网站结构微调，trafilatura 凭借通用算法仍能稳定工作，大幅降低了脚本维护频率。\n- **多格式灵活输出**：支持直接导出为 CSV、JSON 或 Markdown 等多种格式，数据可直接流入下游分析管道。\n\ntrafilatura 将原本耗时数天的非结构化网页清洗工作缩短至小时级，让团队能专注于高价值的舆情洞察而非数据预处理。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fadbar_trafilatura_75ceb926.png","adbar","Adrien Barbaresi","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fadbar_4cd2eca0.jpg","Data Engineer and Scientist | Open Source Enthusiast",null,"Berlin","adrien.barbaresi.eu","https:\u002F\u002Fgithub.com\u002Fadbar",[23],{"name":24,"color":25,"percentage":26},"Python","#3572A5",100,5653,352,"2026-04-05T19:45:51","Apache-2.0",1,"Linux, macOS, Windows","未说明",{"notes":35,"python":36,"dependencies":37},"该工具主要用于网页文本提取和爬虫，无需数据库。支持命令行和 Python 库调用。可选安装语言检测组件和速度优化插件。版本 1.8.0 之前使用 GPLv3+ 许可证，之后使用 Apache 2.0 许可证。","3.6+",[38,39,40,41,42],"courlan","htmldate","justext","lxml","urllib3",[44,45,46,47],"开发框架","数据工具","插件","语言模型",[49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68],"web-scraping","text-extraction","nlp","html2text","text-mining","crawler","text-cleaning","text-preprocessing","article-extractor","readability","scraping","news-crawler","tei","html-to-markdown","corpus-builder","corpus-tools","rss-feed","news-aggregator","rag","llm",2,"ready","2026-03-27T02:49:30.150509","2026-04-06T14:05:08.445073",[74,79,84,89,94,99],{"id":75,"question_zh":76,"answer_zh":77,"source_url":78},19057,"如何在 Celery 等异步任务中运行 Trafilatura 而不出现 'signal only works in main thread' 错误？","在异步环境（如 Celery）中，由于信号处理只能在主线程中工作，直接调用会报错。解决方法是通过配置文件禁用信号处理。创建一个配置文件（例如 myfile.cfg），并在其中设置相关选项，然后在提取时传入该文件：\n\nextract(downloaded, settingsfile=\"myfile.cfg\")\n\n这样可以避免硬编码的信号处理逻辑，使其兼容异步任务。","https:\u002F\u002Fgithub.com\u002Fadbar\u002Ftrafilatura\u002Fissues\u002F202",{"id":80,"question_zh":81,"answer_zh":82,"source_url":83},19058,"为什么 Trafilatura 无法提取简单的标题标签（如 h2, h3）？","Trafilatura 依赖一系列标记线索（markup cues）来定位和提取主要内容。如果在发送源码给 Trafilatura 之前使用 BeautifulSoup 等工具剥离了部分文档结构（如 unwrapping 标签），会导致这些线索丢失，从而无法提取标题。\n\n解决方案：请直接使用完整的 HTML 源码进行提取，不要预先清洗或剥离标签。格式示例：\ntrafilatura.extract(str(soup), output_format='xml', include_comments=False)\n确保输入的是未经修改的完整 HTML。","https:\u002F\u002Fgithub.com\u002Fadbar\u002Ftrafilatura\u002Fissues\u002F354",{"id":85,"question_zh":86,"answer_zh":87,"source_url":88},19059,"遇到 'lxml.etree._Element' object has no attribute 'text_content' 错误怎么办？","该错误通常与 lxml 版本兼容性有关。虽然维护者已应用修复，但如果问题持续，特别是涉及 lxml v5 的预览版或特定环境时，可以尝试临时修改代码或等待正式版本更新。\n\n一种临时的代码级修复方案是将 trafilatura\u002Fexternal.py 第 46 行改为：\nreturn fromstring(doc.summary().encode('UTF-8'), parser=HTML_PARSER)\n\n如果不确定如何操作，建议检查 lxml 版本或关注项目后续的正式更新以获取长期解决方案。","https:\u002F\u002Fgithub.com\u002Fadbar\u002Ftrafilatura\u002Fissues\u002F319",{"id":90,"question_zh":91,"answer_zh":92,"source_url":93},19060,"Trafilatura 的许可证变更计划是什么？","为了更好地符合 Python 社区标准并促进开发，Trafilatura 计划从 GPLv3+ 许可证迁移到 Apache 2.0 许可证。维护者已征求贡献者意见，在收到主要贡献者的同意后，该变更已推进执行。用户现在可以依据 Apache 2.0 协议使用和分发该软件。","https:\u002F\u002Fgithub.com\u002Fadbar\u002Ftrafilatura\u002Fissues\u002F512",{"id":95,"question_zh":96,"answer_zh":97,"source_url":98},19061,"如何正确提取网页元数据（如标题、作者、日期）？","要提取元数据，需在使用 bare_extraction 函数时显式启用 with_metadata 参数。示例代码如下：\n\nimport trafilatura\nfrom trafilatura.core import bare_extraction\n\ndownloaded = trafilatura.fetch_url('https:\u002F\u002Fexample.com')\nresult = bare_extraction(downloaded, include_formatting=False, with_metadata=True)\n\n返回结果中将包含一个字典，内有 title, author, date, description 等字段。如果某些字段为 None，表示未能在该页面找到对应元数据。","https:\u002F\u002Fgithub.com\u002Fadbar\u002Ftrafilatura\u002Fissues\u002F27",{"id":100,"question_zh":101,"answer_zh":102,"source_url":83},19062,"是否可以在不依赖标记线索的情况下强制提取 HTML 块内容？","Trafilatura 的核心算法设计依赖于标记线索来识别主要内容，目前没有内置函数可以完全忽略这些线索进行“强制提取”。如果自动提取失败，通常意味着算法未能识别出有效的主要内容区域。\n\n建议做法是提供完整的 HTML 源码让算法自行判断。如果必须提取特定块且算法失效，可能需要结合其他解析库（如 BeautifulSoup 或 lxml）手动定位元素，但这超出了 Trafilatura 的标准功能范围。",[104,109,114,119,124,129,134,139,144,149,154,159,164,169,174,179,184,189,194,199],{"id":105,"version":106,"summary_zh":107,"released_at":108},117104,"v2.0.0","重大变更：\n- Python 3.6 和 3.7 已弃用 (#709)\n- `bare_extraction()`：\n   - 现在默认返回 `Document` 类的实例\n   - `as_dict` 弃用警告 → 请改用返回值上的 `.as_dict()` 方法 (#730)\n- `bare_extraction()` 和 `extract()`：`no_fallback` 弃用警告 → 请改用 `fast` 参数 (#730)\n- 下载功能：移除 `fetch_url()` 中的 `decode` 参数 → 请改用 `fetch_response` 方法 (#724)\n- 已弃用的图形用户界面现已移除 (#713)\n- 提取功能：将 `max_tree_size` 参数移至 `settings.cfg` 配置文件中 (#742)\n- 使用类型提示 (#721, #723, #748)\n- 请参阅文档中的 [Python](https:\u002F\u002Ftrafilatura.readthedocs.io\u002Fen\u002Flatest\u002Fusage-python.html#deprecations) 和 [CLI](https:\u002F\u002Ftrafilatura.readthedocs.io\u002Fen\u002Flatest\u002Fusage-cli.html#deprecations) 弃用说明\n\n修复：\n- 在空文档树情况下抛出错误前，先设置 `options.source`，由 @dmoklaf 提供 (#707)\n- 增强 `options.source` 中的编码处理 (#717)\n- 更稳健的 HTML 转换映射 (#721)\n- CLI 下载功能：使用设置文件中的所有信息 (#734)\n- 下载功能：优化 urllib3 代码 (#736)\n- 由 @unsleepy22 改进表格 Markdown 输出 (#752)\n- 提取功能修复：处理文本节点中的图片，由 @unsleepy22 提供 (#757)\n\n元数据：\n- 更稳健的 URL 提取 (#710)\n\n命令行界面：\n- CLI：对于带有 `--list` 选项的订阅源和站点地图，在早期阶段就打印 URL，由 @gremid 提供 (#744)\n- CLI：新增 126 号退出码，用于高错误率情况 (#747)\n\n维护：\n- 移除已弃用的函数和参数 (#716)\n- 添加类型提示 (#723, #728)\n- 构建配置：使用 `pyproject.toml` 文件 (#715)\n- 简化代码 (#708, #709, #727)\n- 改进 `main_extractor` 中的调试信息 (#714)\n- 评估：审查数据、更新依赖包、添加 magic_html 功能 (#731)\n- 构建配置：通过 `__all__` 显式导出模块内容 (#740)\n- 测试：扩展测试覆盖率 (#753)\n\n文档：\n- 由 @nzw0301 修复 `docs\u002Findex.html` 中的链接 (#711)\n- 从已发布的软件包中移除文档 (#743)\n- 更新文档 (#745)","2024-12-03T15:23:39",{"id":110,"version":111,"summary_zh":112,"released_at":113},117105,"v1.12.2","- 下载：添加对带有 @gremid 的 SOCKS 代理的支持 (#682)\n- 解析修复：表格跨列时出现 ValueError 异常 (#685)\n- 爬虫：由 @felipehertzer 添加 `prune_xpath` 参数 (#684)\n- 爬虫：放宽链接提取的 strict 参数限制 (#687)\n- 站点地图：由 @felipehertzer 添加 `max_sitemaps` 参数 (#690)\n- 维护：将压缩库设为可选 (#691)\n- 元数据：代码审查与 Lint 检查 (#694)","2024-09-10T12:43:14",{"id":115,"version":116,"summary_zh":117,"released_at":118},117106,"v1.12.1","导航：\n- spider：将搜索限制在包含 URL 路径的章节内（#673）\n- crawler：添加参数类和类型，对未记录的函数造成**重大变更**（#675）\n- 维护：简化链接发现并扩展测试（#674）\n- CLI：审查代码，添加类型注解和测试（#677）\n\n错误修复：\n- 修复元素删除中的 `AttributeError`（#668）\n- 修复表格头列中的 `MemoryError`（#665）\n\n文档：\n- 文档：由 @jpigla 在 #678 中修复快速入门中 extract_metadata 的变量名","2024-08-20T10:58:32",{"id":120,"version":121,"summary_zh":122,"released_at":123},117107,"v1.12.0","重大变更：\n- 强制使用固定的输出格式列表，废弃 CLI 中的 `-out` 选项 (#647)\n\n更快速、更准确的提取：\n- 审查链接和结构检查 (#653)\n- 改进 justext 备用方案 (#652)\n- 基线调整：防止 JSON-LD 中出现 LXML 错误 (#643)，不再将其用作备用提取方法 (#646)\n- 审查用于过滤不良内容的 XPath 表达式 (#645)\n\n错误修复与维护：\n- CLI 修复：Markdown 格式应触发 `include_formatting` (#649)\n- 图片修复：对 `src` 属性使用长度阈值 (#654)\n- XML-TEI：将 RelaxNG 替换为 DTD，移除 pickle，并进行更新 (#655)\n- 格式化与 Markdown 修复：添加换行符 (#656)\n- 表格修复：防止在转换为文本时出现 `MemoryError` 和 `ValueError` (#658)\n\n文档：\n- 更新 `crawls.rst`：`known` 是一个意外参数，由 @tommytyc 在 #638 中提出\n","2024-07-30T14:56:27",{"id":125,"version":126,"summary_zh":127,"released_at":128},117108,"v1.11.0","重大变更：\n- 元数据现在默认被跳过（#613），如需在所有输出格式中包含元数据，请：\n   - 在 Python 中使用 `with_metadata=True`\n   - 在命令行中使用 `--with-metadata`\n\n\n提取功能：\n- 新增 HTML 作为输出格式（#614）\n- 改进并加速基准提取（#619）\n- 更好地处理 HTML\u002FXML 元素（#628）\n- 与 @felipehertzer 合作添加了 XPath 规则（#540）\n- 修复：避免 `readability_lxml` 内容出现错误（#635）\n\n\n评估：\n- 与 @LydiaKoerber 合作新增脚本和数据（#606、#615）\n- 与 @swetepete 合作补充了更多数据（#197）\n\n\n维护：\n- 扩展并更新了文档，新增去重页面（#618）\n- 审查代码，并在部分子模块中添加测试和类型注解（#620、#623、#624、#625）","2024-06-27T14:04:29",{"id":130,"version":131,"summary_zh":132,"released_at":133},117109,"v1.10.0","重大变更：\n- 对已弃用的 CLI 和函数参数抛出错误 (#581)\n- 重新组织与去重相关的类和函数 (#582)\n``trafilatura.hashing`` → ``trafilatura.deduplication``\n\n提取：\n- @zirkelc 在 #587 中移植了 readability.js 中的 is_probably_readerable 函数\n- @naktinis 在 #601 中修复了 Markdown 表格问题\n- 修复 TXT 输出中的列表间距问题 (#598)\n- CLI 修复：文件处理选项、mtime 以及测试相关问题 (#605)\n- CLI 修复：将标准输入按二进制方式读取 (#607)\n\n下载：\n- 修复 deflate 编码，并将可选的 zstd 添加到接受的编码列表中 (#594)\n- 爬虫修复：对 robots.txt 使用内部下载工具 (#590)\n\n维护：\n- 添加作者 XPath (#567)\n- 更新 justext 和 lxml 的依赖 (#593)\n- 简化代码：为长度检查引入统一的函数 (#591)\n\n文档：\n- @RainRat 在 #603 中修复了拼写错误","2024-05-30T15:45:49",{"id":135,"version":136,"summary_zh":137,"released_at":138},117110,"v1.9.0","提取：\n- 将 Markdown 作为显式输出添加 (#550)\n- 改进召回率预设 (#571)\n- 提升 readability-lxml 的速度 (#547)\n- 为提取功能添加全局选项对象，并在 CLI 中使用 (#552)\n- 修复：更完善的编码检测 (#548)\n- 召回：与 @mikhainin 合作修复表格内列表的问题 (#534)\n- 添加符号以在 Markdown 中保留垂直间距 (#499)\n- 修复：非 XML 输出中的表格单元格分隔符 (#563)\n- 整体准确性和执行速度略有提升\n\n元数据：\n- 添加文件创建日期（日期提取、JSON 和 XML-TEI）(#561)\n- 修复：由 @felipehertzer 解决的 meta 标签内容为空的问题 (#545)\n\n维护：\n- 重构并简化代码 (#543, #556)\n- CLI 和下载：改版并使用全局选项 (#565)\n- 评估：审查代码，添加指南和小型基准测试 (#542)\n- 修复：如果配置文件不存在则抛出错误 (#554)\n- 弃用 `process_record()` (#549)\n- 文档：将 README 转换为 Markdown 并更新信息 (#564, #578)","2024-05-02T10:18:26",{"id":140,"version":141,"summary_zh":142,"released_at":143},117111,"v1.8.1","维护：\n- 将 LXML 固定，以防止依赖关系断裂 (#535)\n\n提取：\n- 提升主流新闻媒体的提取准确率 (#530)\n- 通过修正元素生成顺序及空格处理，并与 @dlwh 合作，修复格式问题 (#528)\n- 修复：由 @knit-bee 解决在嵌套元素中避免在子元素之前插入尾部内容的问题 (#536)","2024-04-03T11:47:51",{"id":145,"version":146,"summary_zh":147,"released_at":148},117112,"v1.8.0","提取：\n- 由 @felipehertzer 实现的更精确的提取（#509、#520）\n- 在 TXT\u002FMarkdown 输出中添加了代码格式化功能（#498）\n- 改进了 CSV 输出（#496）\n- 使用 LXML 编译 XPath 表达式（#504）\n- 整体速度提升约 +5%\n\n下载与导航：\n- 通过 `is_live_page()` 实现更稳健的扫描（#501）\n- 改进了站点地图的起始点及防护机制（#503、#506）\n- 修复了响应对象中的头部信息问题（#513）\n\n维护：\n- 许可证变更为 Apache 2.0\n- 为 `Response` 类添加了便捷函数（#497）\n- 移除了 `lxml.html.Cleaner`（#491）\n- 命令行界面修复：并行核心数及处理逻辑相关问题（#524）","2024-03-20T15:24:35",{"id":150,"version":151,"summary_zh":152,"released_at":153},117113,"v1.7.0","提取：\n- 改进了 `html2txt()` 函数 (#483)\n\n下载：\n- 添加了高级的 `fetch_response()` 函数\n→ 计划弃用 `fetch_url(decode=False)`\n\n维护：\n- 支持 LXML 5.x 及以上版本 (#484，由 @knit-bee 提供；#485)\n- 更新 [htmldate](https:\u002F\u002Fgithub.com\u002Fadbar\u002Fhtmldate\u002Freleases\u002Ftag\u002Fv1.7.0)","2024-01-25T13:05:41",{"id":155,"version":156,"summary_zh":157,"released_at":158},117114,"v1.6.4","Maintenance:\r\n- MacOS: fix setup, update htmldate and add tests (#460)\r\n- drop invalid XML element attributes with @vbarbaresi in #462\r\n- remove cyclic imports (#458)\r\n\r\nNavigation:\r\n- introduce `MAX_REDIRECTS` config setting and fix urllib3 redirect handling by @vbarbaresi in #461\r\n- improve feed detection (#457)\r\n\r\nDocumentation:\r\n- enhancements to documentation and testing with @Maddesea in #456\r\n","2024-01-08T14:33:57",{"id":160,"version":161,"summary_zh":162,"released_at":163},117115,"v1.6.3","Extraction:\r\n- preserve space in certain elements with @idoshamun (#429)\r\n- optional list of xPaths to prune by @HeLehm (#414)\r\n\r\nMetadata:\r\n- more precise date extraction (see [htmldate](https:\u002F\u002Fgithub.com\u002Fadbar\u002Fhtmldate\u002Freleases\u002Ftag\u002Fv1.6.0))\r\n- new `htmldate` extensive search parameter in config (#434)\r\n- changes in URLs: normalization, trackers removed (see [courlan](https:\u002F\u002Fgithub.com\u002Fadbar\u002Fcourlan\u002Freleases\u002Ftag\u002Fv0.9.5))\r\n\r\nNavigation:\r\n- reviewed code for feeds (#443)\r\n- new config option: external URLs for feeds\u002Fsitemaps (#441)\r\n\r\nDocumentation:\r\n- update, add page on text embeddings with @tonyyanga (#428, #435, #447)\r\n- fix quickstart by @sashkab (#419)","2023-11-29T13:42:28",{"id":165,"version":166,"summary_zh":167,"released_at":168},117116,"v1.6.2","Extraction:\r\n- more lenient HTML parsing (#370)\r\n- improved code block support with @idoshamun (#372, #401)\r\n- convertion of relative links to absolute by @feltcat (#377)\r\n- remove use of signal from core functions (#384)\r\n\r\nMetadata:\r\n- JSON-LD fix for sitenames by @felipehertzer (#383)\r\n\r\nCommand-line interface:\r\n- more robust batch processing (#381)\r\n- added `--probe` option to CLI to check for extractable content (#378, #392)\r\n\r\nMaintenance:\r\n- simplified code (#408)\r\n- support for Python 3.12\r\n- pinned LXML version for MacOS (#393)\r\n- updated dependencies and parameters (notably `htmldate` and `courlan`)\r\n- code cleaning by @marksmayo (#406)","2023-09-06T15:45:26",{"id":170,"version":171,"summary_zh":172,"released_at":173},117117,"v1.6.1","Extraction:\r\n- minor fixes: tables in figures (#301), headings (#354) and lists (#318)\r\n\r\nMetadata:\r\n- simplify and fully test JSON parsing code, with @felipehertzer (#352, #368)\r\n- authors, JSON and unicode fixes by @felipehertzer in #365\r\n- fix for authors without `additionalName` by @awwitecki in #363\r\n\r\nNavigation:\r\n- reviewed link processing in feeds and sitemaps (#340, #350)\r\n- more robust spider (#359)\r\n- updated underlying courlan package (#360)\r\n\r\nFull Changelog: https:\u002F\u002Fgithub.com\u002Fadbar\u002Ftrafilatura\u002Fcompare\u002Fv1.6.0...v1.6.1","2023-06-15T12:59:26",{"id":175,"version":176,"summary_zh":177,"released_at":178},117118,"v1.6.0","Extraction:\r\n- new content hashes and default file names (#314)\r\n- fix deprecation warning with @sdondley in #321\r\n- fix for metadata image by @andremacola in #328\r\n- fix potential unicode issue in third-party extraction with @Korben00 in #331\r\n- review logging levels (#347)\r\n\r\nCommand-line interface:\r\n- more efficient sitemap processing (#326)\r\n- more efficient downloads (#338)\r\n- fix for single URL processing (#324) and URL blacklisting (#339)\r\n\r\nNavigation\r\n- additional safety check on domain similarity for feeds and sitemaps\r\n- new function ``is_live test()`` using HTTP HEAD request (#327)\r\n- code parts supported by new courlan version\r\n\r\nMaintenance\r\n- allow ``urllib3`` version 2.0+\r\n- minor code simplification and fixes\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fadbar\u002Ftrafilatura\u002Fcompare\u002Fv1.5.0...v1.6.0","2023-05-11T11:00:06",{"id":180,"version":181,"summary_zh":182,"released_at":183},117119,"v1.5.0","Extraction:\r\n- fixes for metadata extraction with @felipehertzer (#295, #296),  @andremacola (#282, #310), and @edkrueger (#303)\r\n- pagetype and image urls added to metadata by @andremacola (#282, #310)\r\n- add as_dict method to Document class with @edkrueger in #306\r\n- XML output fix with @knit-bee in #315\r\n- various smaller fixes: lists (#309), XPaths, metadata hardening\r\n\r\nNavigation:\r\n- transfer URL management to courlan.UrlStore (#232, #312)\r\n- fixes for spider module\r\n\r\nMaintenance:\r\n- simplify code and extend tests\r\n- underlying packages htmldate and courlan, update setup and docs\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fadbar\u002Ftrafilatura\u002Fcompare\u002Fv1.4.1...v1.5.0","2023-03-30T16:11:05",{"id":185,"version":186,"summary_zh":187,"released_at":188},117120,"v1.4.1","Extraction:\r\n- extraction bugs fixed (#263, #266), more robust HTML doctype parsing\r\n- XML output improvements by @knit-bee (#273, #274)\r\n- adjust thresholds for link density in paragraphs\r\n\r\nMetadata:\r\n- improved title and sitename detection (#284)\r\n- faster author, categories, domain name, and tags extraction\r\n- fixes to author emoji regexes by @felipehertzer (#269)\r\n\r\nCommand-line interface:\r\n- review argument consistency and add deprecation warnings (#261)\r\n\r\nSetup:\r\n- make download timeout configurable (#263)\r\n- updated dependencies, use of faust-cchardet for Python 3.11\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fadbar\u002Ftrafilatura\u002Fcompare\u002Fv1.4.0...v1.4.1","2023-01-19T17:02:55",{"id":190,"version":191,"summary_zh":192,"released_at":193},117121,"v1.4.0","Impact on extraction and output format:\r\n- better extraction (#233, #243 & #250 with @knit-bee, #246 with @mrienstra, #258)\r\n- XML: preserve list type as attribute (#229)\r\n- XML TEI: better conformity with @knit-bee (#238, #242, #253, #254)\r\n- faster text cleaning and shorter code (#237 with @deedy5, #245)\r\n- metadata: add language when detector is activated (#224)\r\n- metadata: extend fallbacks and test coverage for json_metadata functions by @felipehertzer (#235)\r\n- TXT: change markdown formatting of headers by @LaundroMat (#257)\r\n\r\nSmaller changes in convenience functions:\r\n- add function to clear caches (#219)\r\n- CLI: change exit code if download fails (#223)\r\n- settings: use \"\\n\" for multiple user agents by @k-sareen (#241)\r\n\r\nUpdates:\r\n- docs updated (and #244 by @dsgibbons)\r\n- package dependencies updated\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fadbar\u002Ftrafilatura\u002Fcompare\u002Fv1.3.0...v1.4.0","2022-10-18T13:59:59",{"id":195,"version":196,"summary_zh":197,"released_at":198},117122,"v1.3.0","- fast and robust `html2txt()` function added (#221)\r\n- more robust parsing (#228)\r\n- fixed bugs in metadata extraction, with @felipehertzer in #213 & #226 \r\n- extraction about 10-20% faster, slightly better recall\r\n- partial fixes for memory leaks (#216)\r\n- docs extended and updated (#217, #225)\r\n- prepared deprecation of old `process_record()` function\r\n- more stable processing with updated dependencies\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fadbar\u002Ftrafilatura\u002Fcompare\u002Fv1.2.2...v1.3.0","2022-07-29T14:42:14",{"id":200,"version":201,"summary_zh":202,"released_at":203},117123,"v1.2.2","- more efficient rules for extraction\r\n- metadata: further attributes used (with @felipehertzer)\r\n- better baseline extraction\r\n- issues fixed: #202, #204, #205\r\n- evaluation updated\r\n\r\nFull Changelog: https:\u002F\u002Fgithub.com\u002Fadbar\u002Ftrafilatura\u002Fcompare\u002Fv1.2.1...v1.2.2","2022-05-18T15:55:18",[205,216,224,232,241,249],{"id":206,"name":207,"github_repo":208,"description_zh":209,"stars":210,"difficulty_score":211,"last_commit_at":212,"category_tags":213,"status":70},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,3,"2026-04-05T11:01:52",[44,214,215],"图像","Agent",{"id":217,"name":218,"github_repo":219,"description_zh":220,"stars":221,"difficulty_score":69,"last_commit_at":222,"category_tags":223,"status":70},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",140436,"2026-04-05T23:32:43",[44,215,47],{"id":225,"name":226,"github_repo":227,"description_zh":228,"stars":229,"difficulty_score":69,"last_commit_at":230,"category_tags":231,"status":70},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107662,"2026-04-03T11:11:01",[44,214,215],{"id":233,"name":234,"github_repo":235,"description_zh":236,"stars":237,"difficulty_score":211,"last_commit_at":238,"category_tags":239,"status":70},4292,"Deep-Live-Cam","hacksider\u002FDeep-Live-Cam","Deep-Live-Cam 是一款专注于实时换脸与视频生成的开源工具，用户仅需一张静态照片，即可通过“一键操作”实现摄像头画面的即时变脸或制作深度伪造视频。它有效解决了传统换脸技术流程繁琐、对硬件配置要求极高以及难以实时预览的痛点，让高质量的数字内容创作变得触手可及。\n\n这款工具不仅适合开发者和技术研究人员探索算法边界，更因其极简的操作逻辑（仅需三步：选脸、选摄像头、启动），广泛适用于普通用户、内容创作者、设计师及直播主播。无论是为了动画角色定制、服装展示模特替换，还是制作趣味短视频和直播互动，Deep-Live-Cam 都能提供流畅的支持。\n\n其核心技术亮点在于强大的实时处理能力，支持口型遮罩（Mouth Mask）以保留使用者原始的嘴部动作，确保表情自然精准；同时具备“人脸映射”功能，可同时对画面中的多个主体应用不同面孔。此外，项目内置了严格的内容安全过滤机制，自动拦截涉及裸露、暴力等不当素材，并倡导用户在获得授权及明确标注的前提下合规使用，体现了技术发展与伦理责任的平衡。",88924,"2026-04-06T03:28:53",[44,214,215,240],"视频",{"id":242,"name":243,"github_repo":244,"description_zh":245,"stars":246,"difficulty_score":69,"last_commit_at":247,"category_tags":248,"status":70},3704,"NextChat","ChatGPTNextWeb\u002FNextChat","NextChat 是一款轻量且极速的 AI 助手，旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性，以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发，NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。\n\n这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言，它也提供了便捷的自托管方案，支持一键部署到 Vercel 或 Zeabur 等平台。\n\nNextChat 的核心亮点在于其广泛的模型兼容性，原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型，让用户在一个界面即可自由切换不同 AI 能力。此外，它还率先支持 MCP（Model Context Protocol）协议，增强了上下文处理能力。针对企业用户，NextChat 提供专业版解决方案，具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能，满足公司对数据隐私和个性化管理的高标准要求。",87618,"2026-04-05T07:20:52",[44,47],{"id":250,"name":251,"github_repo":252,"description_zh":253,"stars":254,"difficulty_score":69,"last_commit_at":255,"category_tags":256,"status":70},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",84991,"2026-04-05T10:45:23",[214,45,240,46,215,257,47,44,258],"其他","音频"]