如何从Scraped Links [Python]下载PDF?

时间:2015-04-15 04:34:31

标签: python pdf web-scraping beautifulsoup python-requests

我正在使用Python制作PDF Web Scraper。基本上,我正试图从我的一个课程中获取所有课程笔记,这些课程都是PDF格式的。我想输入一个网址,然后获取PDF并将其保存在笔记本电脑的目录中。我看了几个教程,但我不完全确定如何去做。 StackOverflow上的所有问题似乎都没有帮助我。

这是我到目前为止所做的:

import requests
from bs4 import BeautifulSoup
import shutil

bs = BeautifulSoup

url = input("Enter the URL you want to scrape from: ")
print("")

suffix = ".pdf"

link_list = []

def getPDFs():    
    # Gets URL from user to scrape
    response = requests.get(url, stream=True)
    soup = bs(response.text)

    #for link in soup.find_all('a'): # Finds all links
     #   if suffix in str(link): # If the link ends in .pdf
      #      link_list.append(link.get('href'))
    #print(link_list)

    with open('CS112.Lecture.09.pdf', 'wb') as out_file:
        shutil.copyfileobj(response.raw, out_file)
    del response
    print("PDF Saved")

getPDFs()

最初,我已经获得了PDF的所有链接,但不知道如何下载它们;现在已经注释掉了该代码。

现在我已经达到了我只想下载一个PDF的程度;并且PDF会下载,但它是一个0KB的文件。

如果它有用,我使用的是Python 3.4.2

1 个答案:

答案 0 :(得分:10)

如果这不需要登录,您可以使用urlretrieve()

from urllib.request import urlretrieve

for link in link_list:
    urlretrieve(link)