from app_vars import * from bs4 import BeautifulSoup as bs import random as r import requests from PIL import Image from io import BytesIO import binascii headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3', "Accept" : "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "Accept-Encoding": "gzip, deflate, br", "Accept-Language": "en-US,en;q=0.9", "Cache-Control": "max-age=0", "Cookie": """mindat=n5e0bck7vvnn6e0o9tkb49fs75; cf_clearance=PMEAfGmJF_UGxZYgB2jsRx5KsiZyNf2plDbXs4HoN5I-1703800389-0-2-d8c97f25.71e5db39.8fc820c5-0.2.1703800389""", "Dnt": """1""", "If-Modified-Since": """Sat, 17 Apr 2021 18:41:12 GMT""", "If-None-Match": "607b2bc8-956c4", "Prefer": "safe", "Sec-Ch-Ua": r'"Not_A Brand";v="8", "Chromium";v="120", "Microsoft Edge";v="120"', "Sec-Ch-Ua-Mobile": "?0", "Sec-Ch-Ua-Platform": '"Windows"', "Sec-Fetch-Dest": "document", "Sec-Fetch-Mode": "navigate", "Sec-Fetch-Site": "none", "Sec-Fetch-User": "?1", "Upgrade-Insecure-Requests": "1",} def get_gallery_image_list_from_rock_id(chosen_rock_id): system( f'{curl_invoker} -A "Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion" -o "{rs}/app_data/html/index.html" https://www.mindat.org/gm/{chosen_rock_id}' ) with open(f"{rs}\\app_data\\html\\index.html", "rb") as f: soup = bs(f, "html.parser") image_list = [] for i in soup.find_all("img"): image_list.append("https://www.mindat.org" + i.get("src")) return image_list rl = load(open(f"{rs}/app_data/rock_urls_list.json")) rl_keys = list(rl.keys()) def rand_rock_key(): return r.choice(rl_keys) def url_of_rock(rock_name): return r.choice(rl[rock_name]) def get_rock_name_url(): name = rand_rock_key() url = url_of_rock(name) # system(f'{curl_invoker} -A "Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion" {url}') img = requests.get(url,headers = headers).content print(img.decode("ascii")) return name, Image.open(BytesIO(binascii.unhexlify(img)))