Trích xuất dữ liệu từ pdf được quét hoặc pdf đang cạo bằng trình trích xuất trang pdf trực tuyến.

Cách trích xuất dữ liệu từ PDF bằng Python

Bạn có thể cần trích xuất dữ liệu từ tài liệu PDF hoặc Word của mình bằng mẫu do người dùng xác định. Bạn có thể phân tích cú pháp bất kỳ tài liệu nào và trích xuất các trường cũng như dữ liệu bảng theo chương trình trên đám mây. Bài viết này sẽ giải thích cách trích xuất dữ liệu cụ thể từ tài liệu PDF bằng API REST trong Python.

Các chủ đề sau đây sẽ được đề cập trong bài viết này:

Trình phân tích cú pháp tài liệu API REST và Python SDK

Để phân tích cú pháp tài liệu PDF và trích xuất dữ liệu dựa trên mẫu, tôi sẽ sử dụng API Python SDK của GroupDocs.Parser Cloud. Nó cho phép bạn phân tích dữ liệu từ tất cả các loại tài liệu phổ biến như tài liệu PDF, tài liệu Microsoft Office và định dạng tệp OpenDocument. Bạn có thể trích xuất văn bản, hình ảnh và phân tích cú pháp dữ liệu theo mẫu bằng SDK. Nó cũng cung cấp SDK .NET, Java, PHP, Ruby và Node.js dưới dạng các thành viên trong họ trình phân tích cú pháp tài liệu cho Cloud API.

Bạn có thể cài đặt GroupDocs.Parser Cloud cho dự án Python của mình bằng pip (trình cài đặt gói cho python) bằng cách sử dụng lệnh sau trong bảng điều khiển để trích xuất thông tin từ pdf:

pip install groupdocs_parser_cloud

Vui lòng lấy ID khách hàng và Bí mật khách hàng của bạn từ bảng điều khiển và thêm mã như hình bên dưới:

client_id = "da0c487d-c1c0-45ae-b7bf-43eaf53c5ad5"
client_secret = "479db2b01dcb93a3d4d20efb16dea971"

configuration = groupdocs_parser_cloud.Configuration(client_id, client_secret)
configuration.api_base_url = "https://api.groupdocs.cloud"
my_storage = ""

Trích xuất dữ liệu theo Đối tượng mẫu bằng Python

Bạn có thể trích xuất dữ liệu từ tài liệu PDF bằng mẫu bằng cách thực hiện theo các bước đơn giản dưới đây:

Tải lên tài liệu

Trước hết, hãy tải tài liệu PDF lên Đám mây bằng ví dụ mã được cung cấp bên dưới:

# Tạo phiên bản của API
file_api = groupdocs_parser_cloud.FileApi.from_config(configuration)

# tải lên các tập tin mẫu
request = groupdocs_parser_cloud.UploadFileRequest("companies.pdf", "C:\\Files\\companies.pdf", my_storage)
response = file_api.upload_file(request)

Do đó, tệp PDF đã tải lên sẽ có trong phần tệp trên trang tổng quan của bạn trên đám mây.

Khai thác dữ liệu dựa trên mẫu bằng Python

Vui lòng làm theo các bước được đề cập bên dưới để trích xuất dữ liệu từ tệp PDF dựa trên mẫu theo chương trình.

  1. Tạo một phiên bản của ParseApi
  2. Xác định ParseOptions và Đặt đường dẫn đến tệp PDF
  3. Tạo Mẫu làm đối tượng
  4. Tạo ParseRequest
  5. Nhận kết quả bằng cách gọi phương thức ParseApi.parse()

Mẫu mã sau đây cho biết cách trích xuất dữ liệu theo mẫu đã xác định từ tài liệu PDF bằng API REST.

# khởi tạo api
parseApi = groupdocs_parser_cloud.ParseApi.from_config(configuration)

# xác định các tùy chọn phân tích cú pháp
options = groupdocs_parser_cloud.ParseOptions()
options.file_info = groupdocs_parser_cloud.FileInfo()
options.file_info.file_path = "companies.pdf"

# Nhận đối tượng mẫu
options.template = GetTemplate()  

# yêu cầu phân tích cú pháp
request = groupdocs_parser_cloud.ParseRequest(options)
result = parseApi.parse(request)

# Hiển thị kết quả
for data in result.fields_data:
    if data.page_area.page_text_area is not None:
        print("Field name: " + data.name + ". Text :" + data.page_area.page_text_area.text)

    if data.page_area.page_table_area is not None:
        print("Table name: " + data.name)
       for cell in data.page_area.page_table_area.page_table_area_cells:
            print("Table cell. Row " + str(cell.row_index) + " column " + str(cell.column_index) + ". Text: " + cell.page_area.page_text_area.text);

Vui lòng tìm bên dưới mẫu được tạo theo tài liệu PDF.

def GetTemplate():
        field1 = groupdocs_parser_cloud.Field()
        field1.field_name = "Address"
        fieldPosition1 = groupdocs_parser_cloud.FieldPosition()
        fieldPosition1.field_position_type = "Regex"
        fieldPosition1.regex = "Company address:"
        field1.field_position = fieldPosition1

        field2 = groupdocs_parser_cloud.Field()
        field2.field_name = "CompanyAddress"
        fieldPosition2 = groupdocs_parser_cloud.FieldPosition()
        fieldPosition2.field_position_type = "Linked"
        fieldPosition2.linked_field_name = "ADDRESS"
        fieldPosition2.is_right_linked = True
        size2 = groupdocs_parser_cloud.Size()
        size2.width = 100
        size2.height = 10
        fieldPosition2.search_area = size2
        fieldPosition2.auto_scale = True
        field2.field_position = fieldPosition2
        
        field3 = groupdocs_parser_cloud.Field()
        field3.field_name = "Company"
        fieldPosition3 = groupdocs_parser_cloud.FieldPosition()
        fieldPosition3.field_position_type = "Regex"
        fieldPosition3.regex = "Company name:"
        field3.field_position = fieldPosition3
        
        field4 = groupdocs_parser_cloud.Field()
        field4.field_name = "CompanyName"
        fieldPosition4 = groupdocs_parser_cloud.FieldPosition()
        fieldPosition4.field_position_type = "Linked"
        fieldPosition4.linked_field_name = "Company"
        fieldPosition4.is_right_linked = True
        size4 = groupdocs_parser_cloud.Size()
        size4.width = 100
        size4.height = 10
        fieldPosition4.search_area = size4
        fieldPosition4.auto_scale = True
        field4.field_position = fieldPosition4
        
        table = groupdocs_parser_cloud.Table()
        table.table_name = "Companies"
        detectorparams = groupdocs_parser_cloud.DetectorParameters()
        rect = groupdocs_parser_cloud.Rectangle()
        size = groupdocs_parser_cloud.Size()
        size.height = 60
        size.width = 480
        position = groupdocs_parser_cloud.Point()
        position.x = 77
        position.y = 279
        rect.size = size
        rect.position = position
        detectorparams.rectangle = rect
        table.detector_parameters = detectorparams
        
        fields = [field1, field2, field3, field4]
        tables = [table]
        
        template = groupdocs_parser_cloud.Template()
        template.fields = fields
        template.tables = tables
        return template
Dữ liệu được trích xuất bằng cách phân tích cú pháp tài liệu bằng mẫu

Dữ liệu được trích xuất bằng cách phân tích cú pháp tài liệu bằng mẫu

Trích xuất dữ liệu theo tệp mẫu bằng Python

Bạn cũng có thể trích xuất dữ liệu từ tài liệu PDF bằng cách cung cấp tệp mẫu dựa trên JSON theo chương trình. Vui lòng làm theo các bước được đề cập bên dưới để phân tích cú pháp tài liệu bằng cách cung cấp tệp mẫu.

  1. Tạo một phiên bản của ParseApi
  2. Xác định ParseOptions
  3. Đặt đường dẫn đến tệp PDF
  4. Đặt đường dẫn đến tệp mẫu
  5. Tạo ParseRequest
  6. Nhận kết quả bằng cách gọi phương thức ParseApi.parse()

Mẫu mã sau đây cho biết cách phân tích cú pháp tài liệu PDF và trích xuất dữ liệu theo mẫu được cung cấp trong tệp JSON bằng API REST. Vui lòng làm theo các bước được đề cập trước đó để tải tệp lên.

# khởi tạo api
parseApi = groupdocs_parser_cloud.ParseApi.from_config(configuration)

# xác định các tùy chọn phân tích cú pháp
options = groupdocs_parser_cloud.ParseOptions()
options.file_info = groupdocs_parser_cloud.FileInfo()
options.file_info.file_path = "companies.pdf"
options.template_path = "template.json"

# yêu cầu phân tích cú pháp
request = groupdocs_parser_cloud.ParseRequest(options)
result = parseApi.parse(request)

# hiển thị kết quả
for data in result.fields_data:
    if data.page_area.page_text_area is not None:
        print("Field name: " + data.name + ". Text :" + data.page_area.page_text_area.text)

    if data.page_area.page_table_area is not None:
        print("Table name: " + data.name)
       for cell in data.page_area.page_table_area.page_table_area_cells:
            print("Table cell. Row " + str(cell.row_index) + " column " + str(cell.column_index) + ". Text: " + cell.page_area.page_text_area.text);

Vui lòng tìm bên dưới mẫu ở định dạng JSON.

{
  "Fields": [
    {
      "FieldName": "Address",
      "FieldPosition": {
        "FieldPositionType": "Regex",
        "Regex": "Companyaddress:"
      }
    },
    {
      "FieldName": "CompanyAddress",
      "FieldPosition": {
        "FieldPositionType": "Linked",
        "LinkedFieldName": "ADDRESS",
        "IsRightLinked": true,
        "SearchArea": {
          "Height": 10.0,
          "Width": 100.0
        },
        "AutoScale": true
      }
    },
    {
      "FieldName": "Company",
      "FieldPosition": {
        "FieldPositionType": "Regex",
        "Regex": "Companyname:"
      }
    },
    {
      "FieldName": "CompanyName",
      "FieldPosition": {
        "FieldPositionType": "Linked",
        "LinkedFieldName": "Company",
        "IsRightLinked": true,
        "SearchArea": {
          "Height": 10.0,
          "Width": 100.0
        },
        "AutoScale": true
      }
    }
  ],
  "Tables": [
    {
      "TableName": "Companies",
      "DetectorParameters": {
        "Rectangle": {
          "Position": {
            "X": 77.0,
            "Y": 279.0
          },
          "Size": {
            "Height": 41.0,
            "Width": 480.0
          }
        }
      }
    }
  ]
}

Giải nén tệp PDF trực tuyến

Làm thế nào để sử dụng trình trích xuất pdf trực tuyến miễn phí? Vui lòng thử công cụ Phân tích cú pháp PDF trực tuyến miễn phí sau đây và trình trích xuất trang pdf miễn phí. Công cụ trích xuất pdf trực tuyến và giải nén pdf trực tuyến miễn phí này được phát triển bằng API trên. https://products.groupdocs.app/parser/pdf

Phần kết luận

Trong bài viết này, bạn đã học cách trích xuất dữ liệu cụ thể từ tài liệu PDF theo mẫu được cung cấp trên đám mây. Bạn cũng đã học cách tạo đối tượng mẫu và cung cấp mẫu ở định dạng JSON. Bài viết này cũng giải thích cách lập trình tải tệp PDF lên đám mây để trích xuất dữ liệu pdf trực tuyến. Bạn có thể tìm hiểu thêm về GroupDocs.Parser Cloud API bằng cách sử dụng tài liệu. Chúng tôi cũng cung cấp phần Tham khảo API cho phép bạn hình dung và tương tác trực tiếp với các API của chúng tôi thông qua trình duyệt.

Đặt một câu hỏi

Nếu bạn có bất kỳ thắc mắc nào về trích xuất dữ liệu từ pdf và trích xuất dữ liệu pdf trực tuyến, vui lòng hỏi chúng tôi tại Diễn đàn hỗ trợ miễn phí

Xem thêm