pracuję nad podjęciem PDF Web skrobak w Pythonie. Zasadniczo próbuję zeskrobać wszystkie notatki z wykładów z jednego z moich kursów, które są w formie plików PDF. Chcę wprowadzić adres URL, a następnie pobrać pliki PDF i zapisać je w katalogu na moim laptopie. Przyjrzałem się kilku tutorialom, ale nie jestem do końca pewien, jak to zrobić. Żadne z pytań dotyczących StackOverflow nie pomaga mi.Jak pobierać pliki PDF ze zeskrobanych łączy [Python]?
Oto co mam do tej pory:
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()
Początkowo miałem zdobyć wszystkie linki do plików PDF, ale nie wiem, jak je pobrać; kod tego jest teraz skomentowany.
Teraz stałam się do punktu, w którym próbuję pobrać tylko jeden plik PDF; i pobierany jest plik PDF, ale jest to plik 0 KB.
Jeśli to jakiegokolwiek użytku, używam Python 3.4.2
Dzięki za to. Nawet jeśli nie pomaga OP, dowiedziałem się o nowej funkcji Pythona. :) –
Awesome. Działa to doskonale! Jedno pytanie uzupełniające; jak wybrać katalog do zapisania plików? – freddiev4
@ FreddieV4 można podać pełną ścieżkę dostępu do pliku w drugim argumencie, patrz przykłady na http://stackoverflow.com/questions/6373094/how-to-download-a-file-to-a-specific-path- w-serwerze-python. Dzięki. – alecxe