2016-05-16 19 views
2

Ich versuche, eine PDF in eine Textdatei zu konvertieren, indem ich scraperwiki und bs4 verwende. Ich bekomme eine TypeError. Ich bin sehr neu bei Python und würde wirklich ein wenig Hilfe zu schätzen wissen. hierTypeError: muss in einen Puffer konvertierbar sein, nicht ResultSet

Fehler tritt auf:

File "scraper_wiki_download.py", line 53, in write_file 
f.write(soup) 

Dies ist mein Code:

# Get content, regardless of whether an HTML, XML or PDF file 
def send_Request(url):   
    response = http.urlopen('GET', url, preload_content=False) 
    return response 

# Use this to get PDF, covert to XML 
def process_PDF(fileLocation): 
    pdfToProcess = send_Request(fileLocation) 
    pdfToObject = scraperwiki.pdftoxml(pdfToProcess.read()) 
    return pdfToObject 

# returns a navigatibale tree, which you can iterate through 
def parse_HTML_tree(contentToParse): 
    soup = BeautifulSoup(contentToParse, 'lxml') 
    return soup 

pdf = process_PDF('http://www.sfbos.org/Modules/ShowDocument.aspx?documentid=54790') 
pdfToSoup = parse_HTML_tree(pdf) 
soupToArray = pdfToSoup.findAll('text') 

def write_file(soup_array): 
    with open('test.txt', "wb") as f: 
     f.write(soup_array) 

write_file(soupToArray) 
+0

Es helfen könnte, zu wissen, welche Linie die Ausnahme auslöst. – polku

Antwort

1

nie benutzt scraperwiki bis jetzt aber bekommt den Text:

import scraperwiki 
import requests 
from bs4 import BeautifulSoup 

pdf_xml = scraperwiki.pdftoxml(requests.get('http://www.sfbos.org/Modules/ShowDocument.aspx?documentid=54790').content) 
print(BeautifulSoup(pdf_xml, "lxml").find_all("text")) 
1

I soupToArray = pdfToSoup.findAll('text') kehrt eine Art Liste erraten, aber f.write() funktioniert nur auf Zeichenfolge, so dass Sie auf sie iterieren haben und transformiere jedes Element auf irgendeine Weise in eine Zeichenkette. Drucken Sie soupToArray, um genau zu sehen, wie es aussieht.

+0

Es sieht so aus, als ob du recht hast. Leider bekomme ich eine leere Liste. Es scheint nicht so, als würde pdfToSoup seine Arbeit machen. – tonestrike

Verwandte Themen