You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用trafilatura.extract报错:收到意外关键字参数'json_output'

你遇到的TypeError: extract() got an unexpected keyword argument 'json_output'报错,核心原因是trafilatura库版本迭代后废弃了旧参数:

  • 教程编写时使用的是0.9.x及更早版本的trafilatura,使用json_output=True指定返回JSON格式结果
  • 1.0及以上版本的trafilatura移除了json_output参数,替换为output_format参数,需要传入output_format='json'实现同样效果

方案1:修改代码适配新版本trafilatura(推荐)

将你自定义函数中两处调用trafilatura.extract的json_output=True参数,替换为output_format='json'即可,修改后的函数代码如下:

import trafilatura
import json
import requests
import numpy as np
from requests.exceptions import MissingSchema

# 保持你原有的beautifulsoup_extract_text_fallback函数实现即可
def beautifulsoup_extract_text_fallback(content):
    from bs4 import BeautifulSoup
    soup = BeautifulSoup(content, 'html.parser')
    return soup.get_text(separator=' ', strip=True)

def extract_text_from_single_web_page(url):
    downloaded_url = trafilatura.fetch_url(url)
    try:
        # 仅修改参数名:json_output=True → output_format='json'
        a = trafilatura.extract(downloaded_url, output_format='json', with_metadata=True, include_comments = False,
                            date_extraction_params={'extensive_search': True, 'original_date': True})
    except AttributeError:
        # 第二处调用同样修改参数
        a = trafilatura.extract(downloaded_url, output_format='json', with_metadata=True,
                            date_extraction_params={'extensive_search': True, 'original_date': True})
    if a:
        json_output = json.loads(a)
        return json_output['text']
    else:
        try:
            resp = requests.get(url)
            # 仅从请求成功的响应中提取文本
            if resp.status_code == 200:
                return beautifulsoup_extract_text_fallback(resp.content)
            else:
                # 处理Trafilature和BeautifulSoup4工具的所有提取失败场景
                return np.nan
        # 处理没有正确协议的URL场景
        except MissingSchema:
            return np.nan

修改完成后重新运行你的测试代码即可正常输出结果。


方案2:安装旧版本trafilatura匹配教程代码

如果你不想修改原有代码,可以直接安装教程对应的旧版本库,执行以下命令即可:

pip install trafilatura==0.9.3

安装完成后原有代码无需改动即可正常运行。


内容的提问来源于stack exchange,提问作者sirimiri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 14:15:03