Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import os, pycurl
- from io import BytesIO, StringIO
- from lxml import etree
- class get_pokemon(object):
- def __init__(self, save_folder):
- self.index_url = 'https://pokemondb.net/pokedex/national'
- self.img_url = 'https://img.pokemondb.net/artwork/{}.jpg'
- self.save_folder = save_folder
- if not os.path.exists(self.save_folder):
- os.mkdir(self.save_folder)
- self.make_index()
- def _GET(self, url):
- buffer = BytesIO()
- c = pycurl.Curl()
- c.setopt(c.URL, url)
- c.setopt(pycurl.USERAGENT, 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36')
- c.setopt(c.WRITEDATA, buffer)
- c.perform()
- c.close()
- return buffer
- def make_index(self):
- buffer = self._GET(self.index_url)
- html_doc = etree.HTML(buffer.getvalue())
- self.span = html_doc.findall(".//span[@class='infocard-lg-data text-muted']")
- self.pokemon_index = {s.find("./small").text:s.find("./a").text.lower() for s in span}
- def get_pokemon(self, _id):
- pokemon_name = self.pokemon_index["#" + format(_id, "03d")]
- if set(pokemon_name) & set("♀♂é"):
- pokemon_name = pokemon_name.replace("♀", "-f").replace("♂", "-m").replace("é", "e")
- img_url = self.img_url
- url = img_url.format(pokemon_name)
- img = self._GET(url)
- filename = "%03d_%s.jpg" % (_id, pokemon_name)
- with open(os.path.join(self.save_folder, filename), 'wb') as out:
- out.write(img.getbuffer())
- pokemon_ball = get_pokemon(os.path.join(os.getcwd(), "pokemon"))
- for i in range(1, 810):
- pokemon_ball.get_pokemon(i)
Advertisement
Add Comment
Please, Sign In to add comment