Как загрузить веб-страницу в формате PDF с помощью Python? - PullRequest
0 голосов
/ 27 января 2019

Я хочу сделать скрипт, который может скачать сайт в формате PDF.пользователь должен иметь возможность ввести URL-адрес (https://stackoverflow.com/) и путь к файлу для загрузки в PDF-файл (c: \ Bob \ PDF).

На данный момент это мой код:

import requests
import pdfkit

url = input("Please enter the url of the file you want to download.")
pdf = pdfkit.from_url(url, "file.pdf")
path = input("Please enter the file path that you would like the file to 
download to. c:\Bob\PDF is an example of a valid file path.")

print("Download starting.")
r = requests.get(pdf)

with open(path, 'wb') as f:
    f.write(r.content)

По какой-то причине PDF-файл не загружается. Мне кажется, мне нужно сначала преобразовать веб-страницу в HTML, а затем преобразовать ее в PDF-файл, чтобы он мог загружаться, но я не уверен, какчтобы сделать это. Любая помощь очень ценится.

1 Ответ

0 голосов
/ 27 января 2019

Прежде всего метод

from_url from module 'pdfkit' 

возвращает True при вызове.

После выполнения этой строки pdf = pdfkit.from_url(url, "file.pdf") значение pdf равно True или False в зависимостипри загрузке и создании файла.

Таким образом, эта строка r = requests.get(pdf) оценивается как r = requests.get(True), что не может быть выполнено должным образом.

В основном вам нужно только запросить у пользователя URL-адрес и путь кфайл

url = input("Please enter the url of the file you want to download.")
path = input("Please enter the file path ex. C:\Jim\Desktop")
file_name = input("Please enter file name")
if pdfkit.from_url(str(url), str(path + file_name)): # Check if method from_url returned True
    print("Sucessfully created pdf from url")
else:
    print("Something went wrong")
...