私は最近、あなたが説明したことを行うためにScraperWikiを使い始めました。
ここにはScraperWikiを使用してPDFデータを抽出するexampleがあります。
scraperwiki.pdftoxml()
関数は、XML構造を返します。
次に、BeautifulSoupを使用して、ナビゲーション可能なツリーに解析することができます。このコードは、全体、<text>
タグの大きな醜い山を印刷しようとしている
import scraperwiki, urllib2
from bs4 import BeautifulSoup
def send_Request(url):
#Get content, regardless of whether an HTML, XML or PDF file
pageContent = urllib2.urlopen(url)
return pageContent
def process_PDF(fileLocation):
#Use this to get PDF, covert to XML
pdfToProcess = send_Request(fileLocation)
pdfToObject = scraperwiki.pdftoxml(pdfToProcess.read())
return pdfToObject
def parse_HTML_tree(contentToParse):
#returns a navigatibale tree, which you can iterate through
soup = BeautifulSoup(contentToParse)
return soup
pdf = process_PDF('http://greenteapress.com/thinkstats/thinkstats.pdf')
pdfToSoup = parse_HTML_tree(pdf)
soupToArray = pdfToSoup.findAll('text')
for line in soupToArray:
print line
-
はここのために私のコードです。 各ページは</page>
で区切られています。例えば<b>
に包まれた見出しが含まれる場合があります
あなたは<text>
タグ内のコンテンツをしたい場合は、あなただけではない、タグを含めて、テキストの各行をしたい場合はline.contents
を使用し、それはだline.getText()
を使用厄介で痛いですが、これは検索可能なPDF文書でも機能します。これまで私はこれが正確であるが、痛いことが分かった。
私は同じ解決策を探していた。問題は、PDF文書が再構成することが困難な塊にテキストを分割することで有名であることです。 PDFを書いたプログラムによって異なります。私はPDFminerと多くの "elif"コードを使ってPDFを解析しました。 –
単なる考えですが、実用的でない可能性があります...回避策を見つけることが切望されている場合は、pdfgrep(http://pdfgrep.sourceforge.net/)に検索を依頼してください。 –