У меня есть алгоритм, который загружает статьи в формате PDF с urllib.request
и BeautifulSoup
(Python 3.6):
import requests as r
from bs4 import BeautifulSoup as soup
import os
import urllib.request
#make a list of all web pages' urls
webpages=[]
for i in range(9):
root_url = 'xxx.com/articles/page'+ str(i)
webpages.append(root_url)
#make a list of PDF links
pdf_links = []
for item in webpages:
headers = {'User-Agent': 'Mozilla/5.0'}
data = r.get(item, headers=headers)
page_soup = soup(data.text, 'html.parser')
links = [span.attrs['href'] for span in page_soup.find_all('a', href = True)]
for link in links:
link_string = str(link)
if link_string.endswith('pdf'):
pdf_links.append(link_string)
#download the files
for pdf_link in pdf_links:
save_to = os.path.basename(pdf_link.strip())
urllib.request.urlretrieve(pdf_link.strip(), save_to)
Мне нужно переименовать каждую загруженную статью PDF с названием статьи, которая хранится в определенном div
классе:
<div class="article article title">
<h2>The Disaster of Deforestation</h2>
</div>
Существует более крупный div
, в котором хранится как заголовок статьи, так и соответствующая ссылка PDF:
<div article-id="1741" class="online article_row_view">
<div class="article article title">
<h2>The Disaster of Deforestation</h2>
</div>
<span class="file-pdf"> <a href="xsdf.pdf" title="BowenA.pdf">PDF</a></span>
</div>
Я понятия не имею, как автоматически переименовывать файлы, тем более с определенным элементом HTML. Любая помощь будет оценена!