Search code examples
pythonpython-2.7urllib2http-status-code-403pypdf

Reading pdf remotely using urllib2


I am trying to extract text from pdf remotely.

The url is this http://loc.gov/aba/publications/FreeLCC/A-text.pdf

My code is as follows

import urllib2
import PyPDF2
import io

URL = 'http://loc.gov/aba/publications/FreeLCC/A-outline.pdf'
remote_file = urllib2.urlopen(URL).read()
memory_file = io.BytesIO(remote_file)

read_pdf = PyPDF2.PdfFileReader(memory_file)
number_of_pages = read_pdf.getNumPages()

for i in range(0, number_of_pages):
    pageObj = read_pdf.getPage(i)
    page = pageObj.extractText()
    print (page)

I get a 403 HTTP error. What am I doing wrong?


Solution

  • Source

    import urllib2
    import PyPDF2
    import io
    
    URL = 'http://loc.gov/aba/publications/FreeLCC/A-outline.pdf'
    req = urllib2.Request(URL, headers={'User-Agent' : "Magic Browser"}) 
    remote_file = urllib2.urlopen(req).read()
    memory_file = io.BytesIO(remote_file)
    
    read_pdf = PyPDF2.PdfFileReader(memory_file)
    number_of_pages = read_pdf.getNumPages()
    
    for i in range(0, number_of_pages):
        pageObj = read_pdf.getPage(i)
        page = pageObj.extractText()
        print (page)