Преобразование PDF в HTML в Python

Python 2.6

Я пытаюсь разобрать мои PDF-файлы и один из способов сделать это - преобразовать его в HTML и извлечь заголовки вместе с их абзацами. Итак, я попробовал pdf2htmlEX, и он преобразовал мой pdf в html, не нарушая мой формат pdf... Пока что я был счастлив, но когда я пытался получить доступ к своим заголовкам с помощью таких команд:

>> import subprocess

>> path = "/home/administrator/Documents/pdf_file.pdf"
>> subprocess.call(["pdf2htmlEX" , path])

Но когда я открыл свой html-файл, он давал мне ненужные вещи вместе с моим текстом, и, что более важно, мой текст не имеет заголовочных тегов, а просто набор элементов div и span.

 >> f = open('/home/administrator/Documents/pdf_file.html','r')
 >> f = f.read()
 >> print f

Я даже пытался получить к нему доступ с помощью BeautifulSoup

>> from bs4 import BeautifulSoup as bs

>> soup = BeautifulSoup(f)
>> soup.find('div', attrs={'class': 'site-content'}).h1

Это не дало мне ничего, потому что не было никаких меток. Я также попробовал HTMLParser

из HTMLParser импортировать HTMLParser

# create a subclass and override the handler methods
class myhtmlparser(HTMLParser):
    def __init__(self):
         self.reset()
         self.NEWTAGS = []
         self.NEWATTRS = []
         self.HTMLDATA = []
    def handle_starttag(self, tag, attrs):
         self.NEWTAGS.append(tag)
         self.NEWATTRS.append(attrs)
    def handle_data(self, data):
         self.HTMLDATA.append(data)
    def clean(self):
         self.NEWTAGS = []
         self.NEWATTRS = []
         self.HTMLDATA = []

parser = myhtmlparser()
parser.feed(f)

# Extract data from parser
tags  = parser.NEWTAGS
attrs = parser.NEWATTRS
data  = parser.HTMLDATA

# Clean the parser
parser.clean()

# Print out our data
#print tags
print data

но все они не выполняют мое требуемое желание. Все, что я хочу, это извлечь все заголовки вместе с необходимыми им абзацами из этого HTML-файла - это слишком много, чтобы просить...:p Я искал почти каждый сайт и читал почти все по этому вопросу, но все мои усилия заканчивались напрасно. Плз, направь меня в этом...

0 ответов

Если это Python3 и выше, это должно быть

outputFilename = outputDir + filename.replace(".pdf",".html")
subprocess.run(["pdf2htmlEX",file,outputFilename])
Другие вопросы по тегам