Я хочу скачать pdf-файлы по этой ссылке ,
На данный момент я могу скачать один файл используя следующий код:
import shutil
import requests
import os
from urllib.parse import urlparse
url = "http://pdf.savills.asia/asia-pacific-research/china-research/shanghai-research/shanghai-office/20q1-sh-office-cn.pdf"
# file_name = url.split("/")[-1]
file_name = os.path.basename(urlparse(url).path)
r = requests.get(url, stream=True)
r.raw.decode_content = True
with open("20q1-sh-office-cn.pdf", 'wb') as f:
shutil.copyfileobj(r.raw, f)
# with open("./{}".format(file_name), 'wb') as f:
# shutil.copyfileobj(r.raw, f)
Но теперь я не знаю, как найти и извлечь все URL-ссылки PDF-файлов и загрузить их, я попробовал следующий код:
from bs4 import BeautifulSoup
url = 'https://www.savills.com.cn/insight-and-opinion/research.aspx?rc=China&p=%E5%95%86%E4%B8%9A%E6%A5%BC%E5%AE%87&t=&f=date&q=&page={}'
for page in range(10):
r = requests.get(url + str(page))
soup = BeautifulSoup(r.content, "html.parser")
for link in soup.find_all("a"):
print("<a href='>%s'>%s</a>" % (link.get("href"), link.text))
Обратите внимание, что xpath URL файла PDF: //*[@id="ListingContainer"]/div[1]/article[1]/div[1]/div/header/h3/a