41 lines
1.5 KiB
Python
41 lines
1.5 KiB
Python
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)
|
|
|