для моей курсовой работы, я должен построить веб-скребок, который очищает веб-сайт для img, word docs и pdf и загружает их в файл, я получаю работу по загрузке img, но когда я изменяю код для загрузки документов или pdf, он не находит ничего вообще, я использую Beautifulsoup для очистки сайта, и я знаю, что на сайте есть документы и PDF-файлы, просто не могу загрузить их.
from bs4 import BeautifulSoup
import urllib.request
import shutil
import requests
from urllib.parse import urljoin
import sys
import time
import os
import url
import hashlib
import re
url = 'http://www.soc.napier.ac.uk/~40009856/CW/'
path=('c:\\temp\\')
def ensure_dir(path):
directory = os.path.dirname(path)
if not os.path.exists(path):
os.makedirs(directory)
return path
os.chdir(ensure_dir(path))
def webget(url):
response = requests.get(url)
html = response.content
return html
def get_docs(url):
soup = make_soup(url)
docutments = [docs for docs in soup.findAll('doc')]
print (str(len(docutments)) + " docutments found.")
print('Downloading docutments to current working directory.')
docutments_links = [each.get('src') for each in docutments]
for each in docutments_links:
try:
filename = each.strip().split('/')[-1].strip()
src = urljoin(url, each)
print ('Getting: ' + filename)
response = requests.get(src, stream=True)
# delay to avoid corrupted previews
time.sleep(1)
with open(filename, 'wb') as out_file:
shutil.copyfileobj(response.raw, out_file)
except:
print(' An error occured. Continuing.')
print ('Done.')
if __name__ == '__main__':
get_docs(url)