url
変数に入れたURLのウェブサイト上のaタグからZipファイルをダウンロードし、展開するスクリプトです。
aタグのhrefにZipファイルへのリンクが直で書かれている場合に使えます。
url
変数を適宜入れ替えて使います。
DOS攻撃にならないように適当にtime.sleep()
を入れてます。
筆者はこのスクリプトに対して一切責任を負いません。
この記事は書きかけです。
import requests from bs4 import BeautifulSoup import time import os import shutil from datetime import datetime as dt # Scrape url = "https://example.com" r = requests.get(url) r.encoding = r.apparent_encoding res = r.text # print(res) soup = BeautifulSoup(res, 'html.parser') atags = soup.find_all('a') # print(atags) links = set() for atag in atags: #print(atag) link = atag.get('href') if link: if link.endswith(".zip"): # print(link) links.add(link) print(links) dir_name = dt.now().strftime("%Y-%m-%d-%H-%M") os.makedirs(dir_name + '_archive', exist_ok=True) for link in links: filename = os.path.basename(link) print(f"downloading: {filename}") # Download data = requests.get(link).content with open(filename, 'wb') as f: f.write(data) # Unzip shutil.unpack_archive(filename, dir_name) shutil.move(filename, dir_name + "_archive") time.sleep(0.5)