Using Regular Expression to Extract Specific Information Through PyPDF2

Question:

Any insight on a particular regex to hit the following words within the document?

Nama Perseroan :PELABUHAN PATIMBAN INTERNASIONAL
Nama Singkatan :
Nomor SP Data
Perseroan:AHU-AH.01.09-0073201
Tanggal SP Data
Perseroan:07 November 2022
Jenis Perseroan :SWASTA NASIONAL
NPWP Perseroan :413909557014000DATA PERSEROANRESMI DARI DITJEN AHU
Jangka Waktu Perseroan :TIDAK TERBATAS
Status Perseroan :TERTUTUP
Nomor Telepon :0217917553
Jenis Transaksi :PERUBAHAN

The full document text looks something like the listed below.

PROFIL PERUSAHAAN PT PELABUHAN PATIMBAN INTERNASIONAL 
Nama :JONATHAN LOH
Email :[email protected]
Nomor HP :90018240982109381209821093
Tanggal Permohonan :16 November 2022 pukul 16:48:33 
Tanggal Pembayaran:22 November 2022 pukul 08:44:38
Tujuan Permohonan:lkasjfasdflksdjflkas jflasjflkasjfalsjflaksjDIMOHONKAN OLEH 
Waktu Unduh PDF :16 Desember 2022 pukul 13:36:19
Telah diunduh :1 kali INFORMASI BERKAS PDF
VERIFIKASI BERKAS PDF
7. Pemberitahuan Perubahan Data Perseroan Jenis Perubahan :1. Pemberitahuan Perubahan Data Perseroan
- Direksi dan KomisarisJENIS PERUBAHAN 
Nama Perseroan :PELABUHAN PATIMBAN INTERNASIONAL
Nama Singkatan :
Nomor SP Data
Perseroan:AHU-AH.01.09-0073201 Tanggal SP Data Perseroan:07 November 2022 
Jenis Perseroan :SWASTA NASIONAL
NPWP Perseroan:413909557014000DATA PERSEROANRESMI DARI DITJEN AHU
Jangka Waktu Perseroan :TIDAK TERBATAS
Status Perseroan :TERTUTUP
Nomor Telepon:0217917553
Jenis Transaksi :PERUBAHAN
Nama Notaris :DEDY SYAMRI, S.H.
Kedudukan Notaris :JAKARTA SELATAN 
Nomor Akta :5
Tanggal Akta :07 November 2022DATA NOTARIS 
Alamat :Menara Bank Mega, Lantai 24, Jl.Kapten P Tendean
Kav. 12-14A
RT :002
RW :002
Kode Pos :12790
Kelurahan:MAMPANG PRAPATAN
Kecamatan :MAMPANG PRAPATAN
Kabupaten :JAKARTA SELATAN
Provinsi :DKI JAKARTAKEDUDUKAN PERSEROAN
Data KBLI Tahun :2017
NoKode
KBLIJudul KBLI Uraian KBLI
152221 AKTIVITAS
PELAYANAN
KEPELABUHANAN 
LAUTKelompok ini mencakup kegiatan usaha pelayanan
kepelabuhan laut, yang berhubungan dengan angkutan perairan untuk
penumpang, hewan atau barang, seperti pengoperasian fasilitas terminal
misalnya pelabuhan dan dermaga, operasi penguncian jalur air dan
lain-lain, navigasi, pelayaran dan kegiatan berlabuh, jasa penambatan
dan jasa pemanduanMAKSUD DAN TUJUAN Klasifikasi SahamHarga Per
LembarJumlah Lembar SahamTotal
- Rp. 1000 40.000.000 Rp. 40.000.000.000MODAL DASAR Klasifikasi SahamHarga Per LembarJumlah Lembar SahamTotal
- Rp. 1000 10.000.000 Rp. 10.000.000.000MODAL DITEMPATKANRESMI DARI DITJEN AHU Rp 10.000.000.000 Dalam bentuk uang.MODAL DISETOR Nama
Jabatan AlamatKlasifikasi 
SahamJumlah
Lembar
SahamTotal
ALIF SASETYO,
NIK: 3171060201830005 
NPWP: 246383541071000
TTL: Jakarta, 02 Januari 1983DIREKTUR Jalan
Maluku
Nomor 19- - -
ARIEF HERMAWAN,
NIK: 1271121011700003
NPWP: 070970173112000
TTL: Bogor, 10 November 1970KOMISARIS BNR
Cluster
Cendana
C 5/19- - -
ARLAN SEPTIA ANANDA
RASAM,
NIK: 3174051209620003
NPWP: 080878200013000
TTL: Jakarta, 12 September
1962KOMISARIS Jalan
Bendi
IX/125- - -
CHAIRAL TANJUNG,
NIK: 3171011605660004
NPWP: 070141650093000
TTL: Jakarta, 16 Mei 1966WAKIL
KOMISARIS 
UTAMAJalan
Besuki Nomor 9- - -
FUAD RIZAL,
NIK: 3174010201780008
NPWP: 488337379015000
TTL: Jakarta, 02 Januari 1978DIREKTUR
UTAMATebet
Barat
Dalam- - -
Ir. R AGUS HARYOTO
PURNOMO,
NIK: 3578032408610001 
NPWP: 097468813615000
TTL: SLEMAN, 24 Agustus 1961KOMISARIS
UTAMARUNGKUT
ASRI
TIMUR
14/35- - -
PT CTCORP INFRASTRUKTUR
INDONESIA,
Nomor SK :-- Menara
Bank
Mega,
Lantai 24,
Jalan 
Kapten
Pierre
Tendean
Kavling
12-14A- 3.200.000 Rp.3.200.000.000
PT INTERPORT PATIMBAN
AGUNG,
Nomor SK :-- Graha
Mitra
Lantai 7,
Jalan
Jenderal
Gatot
Subroto
Kavling 21- 2.900.000 Rp.2.900.000.000
PT PATIMBAN MAJU BERSAMA,
Nomor SK :AHU-
0061318.AH.01.01.TAHUN 2021 
Tanggal SK :30 September 2021- Menara
MTH
Lantai 11,
jalan MT
Haryono,
kavling 23- 2.900.000 Rp. 2.900.000.000
PT TERMINAL PETIKEMAS 
SURABAYA,
Nomor SK :-- Jalan
Tanjung
Mutiara
Nomor 1- 1.000.000 Rp. 1.000.000.000PENGURUS DAN PEMEGANG SAHAM 
RESMI DARI DITJEN AHU
Nama Jabatan AlamatKlasifikasi
SahamJumlah
Lembar
SahamTotal 
YUKKI NUGRAHAWAN HANAFI,
NIK: 3174060211670004
NPWP: 093240992016000
TTL: Jakarta, 02 November 1967KOMISARIS Jalan
Cibulan II
nomor 15- - -
RESMI DARI DITJEN AHU

I intend to use PyPDF2 to extract, and is using the re library from python to extract the match text as intended. Below is the code that I tried implementing.

import PyPDF2
import re
import pprint
import camelot

pdf_file = 'PDF/File.pdf'

with open(pdf_file, 'rb') as pdf_file:

    pdf_reader = PyPDF2.PdfFileReader(pdf_file)
    page_nums = pdf_reader.numPages
    for page_num in range(page_nums):   
        page = pdf_reader.getPage(page_num)
        text = page.extractText()
        string = text
        found = re.search('[A-Z]+[A-Z]+$', string)
    if found:
        print(found.group())
    else:
        print('Not found')
Asked By: jmark

||

Answers:

import PyPDF2
import re

class Company: # Filters and extract only company profile within the PDF file

    pdf_file = 'PDF/File.pdf'

    with open(pdf_file, 'rb') as pdf_file:

        pdf_reader = PyPDF2.PdfFileReader(pdf_file)
        page_nums = pdf_reader.numPages
        for page_num in range(page_nums):   
            page = pdf_reader.getPage(page_num)
            text = page.extractText()
            found = re.findall(r'((?:[A-Z][a-z]+s*)+)bs*:s*(.*?)s*(?=(?:[A-Z][a-z]+s*)+:|$)', text)
            if found:
                print(found)
            else:
                print('Not found')

Allows us to filter out the specific information indicated on the question column.

Answered By: jmark
Categories: questions Tags: ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.