Advertisement
HawkeyeHS

Image

Aug 2nd, 2023
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.05 KB | None | 0 0
  1. from fastapi import FastAPI, HTTPException
  2. from fastapi import Request
  3. from fastapi.responses import JSONResponse
  4. from pydantic import BaseModel
  5. from typing import List
  6. from urllib.request import urlopen, urljoin
  7. import re
  8. import uvicorn
  9. from fastapi.middleware.cors import CORSMiddleware
  10. app = FastAPI()
  11.  
  12.  
  13. class ImageExtractionRequest(BaseModel):
  14.     url: str
  15.  
  16. class ImageExtractionResponse(BaseModel):
  17.     image_urls: List[str]
  18.  
  19. @app.post("/extract_images", response_model=ImageExtractionResponse)
  20. async def extract_images(request: ImageExtractionRequest):
  21.     try:
  22.         page = urlopen(request.url).read().decode('utf-8')
  23.         img_ex = re.compile('<img[^>]+src=["\'](.*?)["\']', re.IGNORECASE)
  24.         image_links = img_ex.findall(page)
  25.         image_urls = [urljoin(request.url, src) for src in image_links]
  26.         return ImageExtractionResponse(image_urls=image_urls)
  27.     except Exception as e:
  28.         raise HTTPException(status_code=500, detail=str(e))
  29.  
  30. if __name__ == "__main__":
  31.     uvicorn.run(app, host="0.0.0.0", port=9000)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement