使用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
相关产品推荐
相关产品推荐

