Я хочу установить статьи с telegra.ph по ссылкам и объединить их в один pdf-файл.Python

Программы на Python
Ответить
Anonymous
 Я хочу установить статьи с telegra.ph по ссылкам и объединить их в один pdf-файл.

Сообщение Anonymous »

Я хочу установить статьи с telegra.ph, используя ссылки на эти статьи, и объединить их в один PDF-файл. Однако, когда я пытаюсь это сделать, у меня возникает эта ошибка:
"requests.Exceptions.ConnectionError: ("Соединение прервано.', TimeoutError(10060, 'Попытка установить соединение не удалась, поскольку требуемый ответ был не получено от другого компьютера в течение необходимого времени, либо уже установленное соединение прервалось из-за некорректного ответа от уже подключенного компьютера', Нет, 10060, Нет))"
Вот мой эскиз, который извлекает контент из ссылок Telegra.ph и объединяет его в один PDF-файл с помощью таких библиотек, как запросы, BeautifulSoup и reportlab:
import requests
from bs4 import BeautifulSoup
from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import letter

def fetch_telegraph_content(url):
response = requests.get(url)
if response.status_code == 200:
soup = BeautifulSoup(response.text, 'html.parser')
title = soup.find('title').text
paragraphs = soup.find_all('p')
content = '\n'.join([p.text for p in paragraphs])
return title, content
else:
return None, None

def create_pdf(filename, articles):
c = canvas.Canvas(filename, pagesize=letter)
width, height = letter

for title, content in articles:
c.setFont("Helvetica-Bold", 14)
c.drawString(72, height - 72, title)
c.setFont("Helvetica", 12)

# Handle multi-line text
text = c.beginText(72, height - 100)
text.setFont("Helvetica", 12)
text.setTextOrigin(72, height - 100)
for line in content.split('\n'):
text.textLine(line)

c.drawText(text)
c.showPage()

c.save()

def main():
urls = [
"https://telegra.ph/1234",
"https://telegra.ph/123"
]

articles = []
for url in urls:
title, content = fetch_telegraph_content(url)
if title and content:
articles.append((title, content))
else:
print(f"Failed to fetch content from {url}")

if articles:
create_pdf("Telegraph_Articles.pdf", articles)
print("PDF created successfully: Telegraph_Articles.pdf")
else:
print("No articles were fetched. PDF not created.")

if __name__ == "__main__":
main()


Подробнее здесь: https://stackoverflow.com/questions/791 ... m-in-one-p
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»