Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # WoW profile scraper
- # Brian Peters 2015
- # if the server name contains a space, replace it with - ex: quel thalas = quelthalas
- # if the server name contains an apostrophe, remove it and merge the words together ex: mal'ganis = malganis
- #"Aegwynn","Aerie Peak","Agamaggan","Aggramar","Akama","Alexstrasza","Alleria","Altar of Storms"
- #,"Alterac Mountains","Aman'Thul","Andorhal","Anetheron","Antonidas","Anub'arak","Anvilmar"
- #,"Arathor","Archimonde","Area","Argent Dawn","Arthas","Arygos","Auchindoun","Azgalor"
- #,"Azjol-Nerub","Azralon","Azshara","Azuremyst","Baelgun","Balnazzar","Barthilas","Black Dragonflight"
- #,"Blackhand","Blackrock","Blackwater Raiders","Blackwing Lair","Blade's Edge","Bladefist","Bleeding Hollow"
- #,"Blood Furnace","Bloodhoof","Bloodscalp","Bonechewer","Borean Tundra","Boulderfist","Bronzebeard"
- #,"Burning Blade","Burning Legion","Caelestrasz","Cairne","Cenarion Circle","Cenarius","Cho'gall"
- #,"Chromaggus","Coilfang","Crushridge","Daggerspine","Dalaran","Dalvengyr","Dark Iron","Darkspear"
- #,"Darrowmere","Dath'Remar","Dawnbringer","Deathwing","Demon Soul","Dentarg","Destromath","Dethecus"
- #,"Detheroc","Doomhammer","Draenor","Dragonblight","Dragonmaw","Drak'Tharon","Drak'thul","Draka"
- #,"Drakkari","Dreadmaul","Drenden","Dunemaul","Durotan","Duskwood","Earthen Ring","Echo Isles"
- #,"Eitrigg","Eldre'Thalas","Elune","Emerald Dream","Eonar","Eredar","Executus","Exodar","Farstriders"
- #,"Feathermoon","Fenris","Firetree","Fizzcrank","Frostmane","Frostmourne","Frostwolf","Galakrond"
- #,"Gallywix","Garithos","Garona","Garrosh","Ghostlands","Gilneas","Gnomeregan","Goldrinn","Gorefiend"
- #,"Gorgonnash","Greymane","Grizzly Hills","Gul'dan","Gundrak","Gurubashi","Hakkar","Haomarush","Hellscream"
- #,"Hydraxis","Hyjal","Icecrown","Illidan","Jaedenar","Jubei'Thos","Kael'thas","Kalecgos","Kargath"
- #,"Kel'Thuzad","Khadgar","Khaz Modan","Khaz'goroth","Kil'jaeden","Kilrogg","Kirin Tor","Korgath"
- #,"Korialstrasz","Kul Tiras","Laughing Skull","Lethon","Lightbringer","Lightning's Blade","Lightninghoof"
- #,"Llane","Lothar","Madoran","Maelstrom","Magtheridon","Maiev","Mal'Ganis","Malfurion","Malorne"
- #,"Malygos","Mannoroth","Medivh","Misha","Mok'Nathal","Moon Guard","Moonrunner","Mug'thol","Muradin"
- #,"Nagrand","Nathrezim","Nazgrel","Nazjatar","Nemesis","Ner'zhul","Nesingwary","Nordrassil","Norgannon"
- #,"Onyxia","Perenolde","Proudmoore","Quel'dorei","Quel'Thalas","Ragnaros","Ravencrest","Ravenholdt"
- #,"Rexxar","Rivendare","Runetotem","Sargeras","Saurfang","Scarlet Crusade","Scilla","Sen'jin","Sentinels"
- #,"Shadow Council","Shadowmoon","Shadowsong","Shandris","Shattered Halls","Shattered Hand","Shu'halo"
- #,"Silver Hand","Silvermoon","Sisters of Elune","Skullcrusher","Skywall","Smolderthorn","Spinebreaker"
- #,"Spirestone","Staghelm","Steamwheedle Cartel","Stonemaul","Stormrage","Stormreaver","Stormscale"
- #,"Suramar","Tanaris","Terenas","Terokkar","Thaurissan","The Forgotten Coast","The Scryers"
- #,"The Underbog","The Venture Co","Thorium Brotherhood","Thrall","Thunderhorn","Thunderlord"
- #,"Tichondrius","Tol Barad","Tortheldrin","Trollbane","Turalyon","Twisting Nether","Uldaman"
- #,"Uldum","Undermine","Ursin","Uther","Vashj","Vek'nilash","Velen","Warsong","Whisperwind"
- #,"Wildhammer","Windrunner","Winterhoof","Wyrmrest Accord","Ysera","Ysondre","Zangarmarsh"
- #,"Zul'jin","Zuluhed"
- from tkinter import *
- from tkinter import ttk
- from PIL import Image, ImageTk
- import urllib
- #from urllib.request import urlopen
- from bs4 import BeautifulSoup
- window = Tk()
- window.configure(background='black')
- serverselect = None #global so we can pull them for scraping the site
- namefield = None #global so we can pull them later for scraping the site
- mastername = None
- masterrealm = None
- def firstscrape(realm, name):
- global mastername
- #rl = "http://us.battle.net/wow/en/character/garrosh/therm%C3%ADte/advanced"
- urlpart1 = "http://us.battle.net/wow/en/character/garrosh/"
- urlpart3 = "/advanced"
- urlpart2 = str(mastername)
- urlpartx = urllib.quote(urlpart2)
- #if urlpart2.find("í"):
- # urlpart2.replace(r"í","%C3%AD")
- #print(urlpart2 + "blahblahblah")
- url = urlpart1 + urlpartx + urlpart3
- print(url)
- try:
- html = urlopen(url)
- except HTTPError as e:
- return None
- try:
- bsObj = BeautifulSoup(html.read(), "html5lib")
- code = bsObj.style
- codestr = str(code.get_text())
- urlstripper_bgimage(codestr)
- except AttributeError as e:
- return None
- def urlstripper_bgimage(code):
- temp1, temp2 = code.split("}",1)
- code = temp2
- placeholder = len(temp2)-1
- temp2 = code[2:placeholder]
- code = temp2
- temp1, temp2 = code.split('"',1)
- code = temp2
- temp1, temp2 = code.split("?alt",1)
- code = temp1
- print(code)
- return code
- def login():
- print("logged in")
- def serverassign(*args):
- print("server assign started")
- global mastername
- mastername = namefield.get()
- global masterrealm
- masterrealm = serverselect.get()
- firstscrape(masterrealm, mastername)
- windowsetup()
- def windowsetup(*args): #*args is passed because it won't work without it. thanks tkinter ...
- global window
- global serverselect
- global servervar
- window.geometry("740x550")
- #server selection
- servervar = StringVar()
- serverselect = ttk.Combobox(window, textvariable=servervar)
- serverselect['values'] = ("Aegwynn","Aerie Peak","Agamaggan","Aggramar","Akama","Alexstrasza","Alleria","Altar of Storms"
- ,"Alterac Mountains","Aman'Thul","Andorhal","Anetheron","Antonidas","Anub'arak","Anvilmar"
- ,"Arathor","Archimonde","Area","Argent Dawn","Arthas","Arygos","Auchindoun","Azgalor"
- ,"Azjol-Nerub","Azralon","Azshara","Azuremyst","Baelgun","Balnazzar","Barthilas","Black Dragonflight"
- ,"Blackhand","Blackrock","Blackwater Raiders","Blackwing Lair","Blade's Edge","Bladefist","Bleeding Hollow"
- ,"Blood Furnace","Bloodhoof","Bloodscalp","Bonechewer","Borean Tundra","Boulderfist","Bronzebeard"
- ,"Burning Blade","Burning Legion","Caelestrasz","Cairne","Cenarion Circle","Cenarius","Cho'gall"
- ,"Chromaggus","Coilfang","Crushridge","Daggerspine","Dalaran","Dalvengyr","Dark Iron","Darkspear"
- ,"Darrowmere","Dath'Remar","Dawnbringer","Deathwing","Demon Soul","Dentarg","Destromath","Dethecus"
- ,"Detheroc","Doomhammer","Draenor","Dragonblight","Dragonmaw","Drak'Tharon","Drak'thul","Draka"
- ,"Drakkari","Dreadmaul","Drenden","Dunemaul","Durotan","Duskwood","Earthen Ring","Echo Isles"
- ,"Eitrigg","Eldre'Thalas","Elune","Emerald Dream","Eonar","Eredar","Executus","Exodar","Farstriders"
- ,"Feathermoon","Fenris","Firetree","Fizzcrank","Frostmane","Frostmourne","Frostwolf","Galakrond"
- ,"Gallywix","Garithos","Garona","Garrosh","Ghostlands","Gilneas","Gnomeregan","Goldrinn","Gorefiend"
- ,"Gorgonnash","Greymane","Grizzly Hills","Gul'dan","Gundrak","Gurubashi","Hakkar","Haomarush","Hellscream"
- ,"Hydraxis","Hyjal","Icecrown","Illidan","Jaedenar","Jubei'Thos","Kael'thas","Kalecgos","Kargath"
- ,"Kel'Thuzad","Khadgar","Khaz Modan","Khaz'goroth","Kil'jaeden","Kilrogg","Kirin Tor","Korgath"
- ,"Korialstrasz","Kul Tiras","Laughing Skull","Lethon","Lightbringer","Lightning's Blade","Lightninghoof"
- ,"Llane","Lothar","Madoran","Maelstrom","Magtheridon","Maiev","Mal'Ganis","Malfurion","Malorne"
- ,"Malygos","Mannoroth","Medivh","Misha","Mok'Nathal","Moon Guard","Moonrunner","Mug'thol","Muradin"
- ,"Nagrand","Nathrezim","Nazgrel","Nazjatar","Nemesis","Ner'zhul","Nesingwary","Nordrassil","Norgannon"
- ,"Onyxia","Perenolde","Proudmoore","Quel'dorei","Quel'Thalas","Ragnaros","Ravencrest","Ravenholdt"
- ,"Rexxar","Rivendare","Runetotem","Sargeras","Saurfang","Scarlet Crusade","Scilla","Sen'jin","Sentinels"
- ,"Shadow Council","Shadowmoon","Shadowsong","Shandris","Shattered Halls","Shattered Hand","Shu'halo"
- ,"Silver Hand","Silvermoon","Sisters of Elune","Skullcrusher","Skywall","Smolderthorn","Spinebreaker"
- ,"Spirestone","Staghelm","Steamwheedle Cartel","Stonemaul","Stormrage","Stormreaver","Stormscale"
- ,"Suramar","Tanaris","Terenas","Terokkar","Thaurissan","The Forgotten Coast","The Scryers"
- ,"The Underbog","The Venture Co","Thorium Brotherhood","Thrall","Thunderhorn","Thunderlord"
- ,"Tichondrius","Tol Barad","Tortheldrin","Trollbane","Turalyon","Twisting Nether","Uldaman"
- ,"Uldum","Undermine","Ursin","Uther","Vashj","Vek'nilash","Velen","Warsong","Whisperwind"
- ,"Wildhammer","Windrunner","Winterhoof","Wyrmrest Accord","Ysera","Ysondre","Zangarmarsh"
- ,"Zul'jin","Zuluhed")
- servervar.set('Pick Your Realm')
- serverselect.pack()
- #Toon name entry
- toonname = StringVar()
- namefield = Entry(window, textvariable=toonname)
- namefield.pack()
- namefield.insert(0, "Enter Name")
- #login button
- logbtn = Button(window, text = "Get Toon")
- logbtn.configure(fg='green')
- logbtn.pack()
- logbtn.bind('<Button-1>', serverassign)
- #start window loop
- window.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment