Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Random anime character info (#4553)
* fixed colons and spaces * fixed colons and spaces * random anime character python script * more tests passed * type hint updated Co-authored-by: Christian Clauss <[email protected]> * type hint updated again Co-authored-by: Christian Clauss <[email protected]> * Update random_anime_character.py Co-authored-by: Christian Clauss <[email protected]>
- Loading branch information
Showing
with
37 additions
and 0 deletions.
| @@ -0,0 +1,37 @@ | ||
| import os | ||
|
|
||
| import requests | ||
| from bs4 import BeautifulSoup | ||
| from fake_useragent import UserAgent | ||
|
|
||
| headers = {"UserAgent": UserAgent().random} | ||
| URL = "https://www.mywaifulist.moe/random" | ||
|
|
||
|
|
||
| def save_image(image_url: str, image_title: str) -> None: | ||
| """ | ||
| Saves the image of anime character | ||
| """ | ||
| image = requests.get(image_url, headers=headers) | ||
| with open(image_title, "wb") as file: | ||
| file.write(image.content) | ||
|
|
||
|
|
||
| def random_anime_character() -> tuple[str, str, str]: | ||
| """ | ||
| Returns the Title, Description, and Image Title of a random anime character . | ||
| """ | ||
| soup = BeautifulSoup(requests.get(URL, headers=headers).text, "html.parser") | ||
| title = soup.find("meta", attrs={"property": "og:title"}).attrs["content"] | ||
| image_url = soup.find("meta", attrs={"property": "og:image"}).attrs["content"] | ||
| description = soup.find("p", id="description").get_text() | ||
| _, image_extension = os.path.splitext(os.path.basename(image_url)) | ||
| image_title = title.strip().replace(" ", "_") | ||
| image_title = f"{image_title}{image_extension}" | ||
| save_image(image_url, image_title) | ||
| return (title, description, image_title) | ||
|
|
||
|
|
||
| if __name__ == "__main__": | ||
| title, desc, image_title = random_anime_character() | ||
| print(f"{title}\n\n{desc}\n\nImage saved : {image_title}") |

