Files
scraperchan/scraperchan.py
2023-12-17 11:34:02 +01:00

54 lines
1.7 KiB
Python

import requests, json, time, argparse, sys, os
from PIL import Image
from io import BytesIO
parser = argparse.ArgumentParser()
parser.add_argument('-u', type=str, required=True)
parser.add_argument('-o', type=str, required=True)
args = parser.parse_args()
r = requests.get(args.u + ".json")
print("Got main request from " + args.u + ".json" )
rjson = r.json()
board = args.u.split("/")[3]
for i in rjson['posts']:
if "ext" in i:
ir = requests.get("https://i.4cdn.org/" + board + "/" + str(i['tim']) + i['ext'])
print("Got post request for: " + board + "/" + str(i['tim']) + i['ext'])
bstream = BytesIO(ir.content)
try:
ir = requests.get("https://i.4cdn.org/" + board + "/" + str(i['tim']) + i['ext'])
im = Image.open(bstream)
print("Converted bytes to image")
im.save(args.o + "/" + board + "-" + str(i['tim']) + i['ext'])
print("Saved image: " + board + "-" + str(i['tim']) + i['ext'])
except KeyboardInterrupt:
print('Closing')
try:
sys.exit(130)
except SystemExit:
os._exit(130)
except:
try:
with open(args.o + "/" + board + str(i['tim']) + i['ext'], 'wb') as f:
f.write(bstream.getbuffer())
f.close()
print("Saved video: " + board + "-" + str(i['tim']) + i['ext'])
except Exception as err:
print("Cant convert data to image or video maybe not an image or video format")
print("NO: " + str(i['no']))
print(err)
time.sleep(1)
print("Done!!")