35 lines
861 B
Python
35 lines
861 B
Python
from bs4 import BeautifulSoup
|
|
import requests
|
|
from PIL import Image
|
|
from io import BytesIO
|
|
|
|
def get_image(html):
|
|
# get the links
|
|
soup = BeautifulSoup(html, "lxml")
|
|
links = []
|
|
for element in soup.find_all("img", attrs={"draggable": "true"}):
|
|
src = element.get("src")
|
|
if "media" in src:
|
|
links.append(src.replace("&", "&"))
|
|
|
|
# get the images
|
|
images = [Image.open(BytesIO(requests.get(link).content)) for link in links]
|
|
|
|
# stitch the images together
|
|
w = images[0].width
|
|
h = images[0].height
|
|
out = Image.new(mode=images[0].mode, size=(w, h * 4))
|
|
|
|
for i, image in enumerate(images):
|
|
out.paste(image, box=(0, h * i))
|
|
|
|
# done
|
|
return out
|
|
|
|
def main():
|
|
with open("input") as f:
|
|
get_image(f.read().strip()).save("result.png")
|
|
|
|
if __name__ == "__main__":
|
|
main()
|