Konvertieren von pdf in text/html in python, so kann ich es analysieren
Habe ich folgenden Beispielcode, in denen ich zum download eine pdf-Datei aus dem europäischen Parlament-website auf einen bestimmten Legislativvorschlag:
EDIT: ich landete immer nur der link und Einspeisung zu adobes online-Konvertierungs-Werkzeug (siehe code unten):
import mechanize
import urllib2
import re
from BeautifulSoup import *
adobe = "http://www.adobe.com/products/acrobat/access_onlinetools.html"
url = "http://www.europarl.europa.eu/oeil/search_reference_procedure.jsp"
def get_pdf(soup2):
link = soup2.findAll("a", "com_acronym")
new_link = []
amendments = []
for i in link:
if "REPORT" in i["href"]:
new_link.append(i["href"])
if new_link == None:
print "No A number"
else:
for i in new_link:
page = br.open(str(i)).read()
bs = BeautifulSoup(page)
text = bs.findAll("a")
for i in text:
if re.search("PDF", str(i)) != None:
pdf_link = "http://www.europarl.europa.eu/" + i["href"]
pdf = urllib2.urlopen(pdf_link)
name_pdf = "%s_%s.pdf" % (y,p)
localfile = open(name_pdf, "w")
localfile.write(pdf.read())
localfile.close()
br.open(adobe)
br.select_form(name = "convertFrm")
br.form["srcPdfUrl"] = str(pdf_link)
br["convertTo"] = ["html"]
br["visuallyImpaired"] = ["notcompatible"]
br.form["platform"] =["Macintosh"]
pdf_html = br.submit()
soup = BeautifulSoup(pdf_html)
page = range(1,2) #can be set to 400 to get every document for a given year
year = range(1999,2000) #can be set to 2011 to get documents from all years
for y in year:
for p in page:
br = mechanize.Browser()
br.open(url)
br.select_form(name = "byReferenceForm")
br.form["year"] = str(y)
br.form["sequence"] = str(p)
response = br.submit()
soup1 = BeautifulSoup(response)
test = soup1.find(text="No search result")
if test != None:
print "%s %s No page skipping..." % (y,p)
else:
print "%s %s Writing dossier..." % (y,p)
for i in br.links(url_regex="file.jsp"):
link = i
response2 = br.follow_link(link).read()
soup2 = BeautifulSoup(response2)
get_pdf(soup2)
In der get_pdf () - Funktion würde ich gerne konvertieren Sie die pdf-Datei mit text in python, so kann ich parse den text für die Informationen über das Gesetzgebungsverfahren. kann jemand explaon mich wie dies geschehen kann?
Thomas
[insert standard-Beschwerde über
Ich bin mir bewusst, die standard-Beschwerde über umweltschädliche Raum der Namen, aber im obigen Fall ist scheint wie eine sehr theoretische Beschwerde 😉
blog kann helfen, wählen Sie die beste Bibliothek.
import *
hier]Ich bin mir bewusst, die standard-Beschwerde über umweltschädliche Raum der Namen, aber im obigen Fall ist scheint wie eine sehr theoretische Beschwerde 😉
blog kann helfen, wählen Sie die beste Bibliothek.
InformationsquelleAutor Thomas Jensen | 2010-09-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist nicht wirklich Magie. Ich schlage vor,
Für die text-Extraktion-Befehlszeilen-Dienstprogramme, die Sie haben eine Reihe von Möglichkeiten und möglicherweise gibt es andere, die nicht erwähnt in den link (vielleicht ist Java-basiert). Versuchen Sie zuerst, um zu sehen, ob Sie Ihren Bedürfnissen anpassen. Das heißt, versuchen Sie, jeden Schritt separat zu bestellen (zu finden unter links, das herunterladen von Dateien, extrahieren von text) und dann Stück Sie zusammen. Für den Aufruf verwenden Sie
subprocess.Popen
odersubprocess.call()
.InformationsquelleAutor loevborg
Klingt wie Sie haben eine Lösung gefunden, aber wenn Sie jemals wollen, um es zu tun, ohne ein web service, oder Sie müssen zu kratzen-Daten basierend auf Ihrer genauen Position auf der PDF-Seite, kann ich empfehlen, meine Bibliothek, pdfquery? Es dreht sich im Grunde die PDF-Datei in eine lxml-Baum werden kann, ausspucken als XML, oder analysiert, mit XPath, PyQuery, oder was immer Sie möchten, zu verwenden.
Um es zu verwenden, wenn Sie die Datei auf der Festplatte gespeichert, Sie würde zurück
pdf = pdfquery.PDFQuery(name_pdf)
oder pass in das urllib file-Objekt direkt auf, wenn Sie nicht brauchen, um es zu speichern. Um XML aus zu analysieren, mit BeautifulSoup, Sie könnte tunpdf.tree.tostring()
.Wenn es Ihnen nichts ausmacht mit JQuery-style-Selektoren, es ist ein PyQuery Schnittstelle mit positions-Erweiterungen, die ziemlich praktisch. Zum Beispiel:
Cushman cam Sie fügen Sie bitte einige Beispiele und die Dokumentation auf Repository. Seine sehr hektisch für den Markt zu verstehen, und beginnen Sie mit der pdfquery.
Hi Jack, ich bin mit pdfquery zum extrahieren von Daten aus PDF-Dateien und es läuft sehr gut. Ich will jetzt konvertieren Sie die XML-Ausgabe der pdfquery in HTML. Grundsätzlich bin ich auf der Suche generiert eine HTML-Seite entspricht der ursprünglichen PDF-Datei. Können Sie mich direkt in die richtige Richtung, um dies zu erreichen ?
InformationsquelleAutor Jack Cushman
Haben Sie ausgecheckt PDFMiner?
Es gibt unixuser.org/~euske/python/pdfminer/programming.html, das scheint nicht schwer zu entdecken...
Ich habe gelesen, aber ich bin noch neu in python, also ich weiß nicht, aus der gezeigten Beispiele auf der website wie konvertieren von pdf zu html/text (habe ich auch Lesen Sie die Beispiele unter denis.papathanasiou.org/?p=343, was bedeutet, dass ich genauso verwirrt).
Versuchen Sie die Kommandozeilen-version, die einfach sein sollte. Später können Sie ersetzen Sie es mit einem python-Bibliothek zu nennen, die das kann Vorteile haben (schneller, weniger overhead), aber sonst sollte so ziemlich das gleiche.
Auch dieses Beispiel könnte hilfreich sein. (Meta-Rat: versuchen Sie nullege.com oder Google Code Suche für Beispiele, die Bibliothek benutzen)
InformationsquelleAutor Cal Jacobson