import time from pathlib import Path from urllib.parse import urlparse import requests from zipfile import ZipFile, ZipInfo from bs4 import BeautifulSoup import cloudscraper s = cloudscraper.create_scraper() def get_html(): req = requests.get('https://readcomicsonline.ru/comic/deadly-class-2014/40') with open('blah.html', 'wb') as f: f.write(req.content) def download_comic(): with ZipFile(f'file.cbz', mode='w') as z: for page in range(1, 32): print(page) req = requests.get(f'https://readcomicsonline.ru/uploads/manga/deadly-class-2014/chapters/40/{page:02}.jpg') z.writestr(f'{page}.jpg', req.content) name = 'Faster Than Light' issues_to_get = range(1, 11) baseurl = 'https://readcomicsonline.ru/comic/faster-than-light-2015' if __name__ == '__main__': for issue_number in issues_to_get: req = s.get(f'{baseurl}{"/" if not baseurl.endswith("/") else ""}{issue_number}/') soup = BeautifulSoup(req.content, 'html.parser') with ZipFile(f'{name} {issue_number:03}.cbz', mode='w') as z: for image_url in soup.find("div", class_="imagecnt").findAll('img'): try: image_url_text = image_url.attrs['data-src'].strip() except KeyError: continue print(image_url_text) req = s.get(image_url_text) z.writestr(image_url_text.rsplit('/', 1)[1], req.content) time.sleep(15)