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

使用Python 3.9调用AWS Textract文档分析能否指定页面与FeatureTypes?

AWS Textract 特定页面分析实现方案

可以上传完整PDF文件,仅针对指定页面调用start_document_analysis接口并配置特定FeatureTypes,完全满足你提出的「7页PDF仅分析第3、5页的SIGNATURES特征」需求。

核心实现逻辑

AWS Textract的start_document_analysis接口支持两个关键参数来实现这个需求:

  • Pages:接受字符串格式的页码列表(页码从1开始计数),用于指定需要分析的特定页面
  • FeatureTypes:指定要提取的文档特征类型,例如["SIGNATURES"]

Python 3.9 代码示例

import boto3
import time

# 初始化Textract客户端(替换为你的AWS区域)
textract_client = boto3.client('textract', region_name='us-east-1')

# 启动异步文档分析任务
response = textract_client.start_document_analysis(
    DocumentLocation={
        'S3Object': {
            'Bucket': 'your-s3-bucket-name',  # 替换为你的S3桶名
            'Name': 'path/to/your/document.pdf'  # 替换为PDF文件在S3中的路径
        }
    },
    FeatureTypes=['SIGNATURES'],
    Pages=['3', '5']  # 指定要分析的页码
)

job_id = response['JobId']

# 轮询任务状态,直至完成
while True:
    result = textract_client.get_document_analysis(JobId=job_id)
    status = result['JobStatus']

    if status == 'SUCCEEDED':
        # 处理签名分析结果
        print("签名分析结果:")
        for block in result['Blocks']:
            if block['BlockType'] == 'SIGNATURE':
                print(f"检测到签名,位置:{block['Geometry']['BoundingBox']}")
        break
    elif status == 'FAILED':
        print("分析任务失败,请检查任务配置或权限")
        break
    # 任务未完成,等待后重试
    time.sleep(5)

关键注意事项

  • 必须将PDF文件存储在AWS S3中,start_document_analysis仅支持分析S3存储的文档(同步接口analyze_document虽支持直接上传字节流,但不支持多页PDF的特定页面选择)。
  • 确保你的IAM角色拥有textract:StartDocumentAnalysis、textract:GetDocumentAnalysis权限,以及访问目标S3桶的权限。
  • 异步任务结果会保留7天,可在任务完成后随时调用get_document_analysis获取结果。
  • Pages参数的页码必须是字符串格式的整数,例如['3','5'],对应PDF的第3、5页。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 11:27:16