Home > Blockchain >  Scraping a table that uses a firebase database
Scraping a table that uses a firebase database

Time:10-20

I am trying to scrape data for a project from this website, specifically the table under the "Matchups" tab.

I'm brand new to web scraping so I did some digging through inspect element, but as far as I can tell the table is loaded dynamically, so none of the data can be found in the source. I looked in dev tools and I found a connection to a websocket at the url "wss://s-usc1a-nss-2024.firebaseio.com/.ws?v=5&ns=data-reaper", which I'm guessing is where the data is stored.

I read the firebase REST API and tried to make a request using the path I found in this file:

curl "https://s-usc1a-nss-2024.firebaseio.com/Data/tableData/Standard.json"

but got

{ "error" : "Permission denied" }

There is also this table which is identical (although slightly outdated) which seems to be hosted on Tableau. I tried using a Tableau Scraping Library made by Bertrand Martel:

from tableauscraper import TableauScraper as TS

url = "https://public.tableau.com/app/profile/tzachi.zach/viz/DataReaper243-MatchupWinRates/WinratesLeague"   
ts = TS()
ts.loads(url)

which yields this error:

Traceback (most recent call last):
  File "C:\Users\d4wgr\AppData\Local\Programs\Python\Python310\scrapertest.py", line 6, in <module>
    ts.loads(url)
  File "C:\Users\d4wgr\AppData\Local\Programs\Python\Python310\lib\site-packages\tableauscraper\TableauScraper.py", line 80, in loads
    soup.find("textarea", {"id": "tsConfigContainer"}).text
AttributeError: 'NoneType' object has no attribute 'text'

which, according to the creator of the library in this thread, is caused by authentication errors.

I'm wondering if I need some sort of key to make either of these requests, or if perhaps I have the wrong path in the first block. It is also entirely possible that I actually don't have the necessary permissions to make this type of request, in which case I suppose the only way to extract the data would be via selenium or something similar.

CodePudding user response:

It seems like the developer of the app you are scraping has disabled unauthenticated access to their Firestore database. Bypassing Firebase authentication is nearly impossible. So my suggestion for you is to invest your resources in either building a JavaScript capable web scraper, or to use an external web scraping service.

As an engineer at Web Scraping API I came up with this script for you, which which uses our service to return the targeted HTML table of the file, after it clicks:

  • the 'Feedback' button (Greeting traveler popup)
  • the 'Matchup' buttons
  • The 'Show table' button
import requests, json

API_KEY = '<YOUR_API_KEY>'
SCRAPER_URL = 'https://api.webscrapingapi.com/v1'

TARGET_URL = 'https://www.vicioussyndicate.com/data-reaper-live-beta/'

PARAMS = {
    "api_key":API_KEY,
    "url": TARGET_URL,
    "render_js":1,
    "js_instructions": '[{"action":"click","selector":"button#basicBtn","timeout": 5000, "block": "start"},{"action":"click","selector":"button#table","timeout": 5000, "block": "start"},{"action":"click","selector":"button#number","timeout": 5000, "block": "start"}]',
    "block_ads":1,
    "block_trackers":1,
    "wait_for_css":".main-svg",
    "extract_rules":'{"table":{"selector":"#numberTable","output":"html"}}',
}

response = requests.get(SCRAPER_URL, params=PARAMS)
json = json.loads(response.text)
table = json['table'][0]

print(table)

The table (result) looks like:

<table id="numberTable">
   <tbody>
      <tr>
         <th >Rank -&gt;</th>
         <th>B1-10</th>
         <th>S1-10</th>
         <th>G6-10</th>
         <th>G1-5</th>
         <th>P9-10</th>
         <th>P7-8</th>
         <th>P5-6</th>
         <th>P3-4</th>
         <th>P1-2</th>
         <th>D10</th>
         <th>D9</th>
         <th>D8</th>
         <th>D7</th>
         <th>D6</th>
         <th>D5</th>
         <th>D4</th>
         <th>D3</th>
         <th>D2</th>
         <th>D1</th>
         <th>L</th>
      </tr>
      <tr>
         <td  style="background-color: rgb(0, 128, 0); color: rgb(255, 255, 255);">DemonHunter</td>
         <td style="background-color: rgb(175, 193, 222);">7.1%</td>
         <td style="background-color: rgb(178, 195, 223);">6.8%</td>
         <td style="background-color: rgb(173, 192, 221);">7.3%</td>
         <td style="background-color: rgb(174, 192, 222);">7.2%</td>
         <td style="background-color: rgb(162, 183, 217);">8.2%</td>
         <td style="background-color: rgb(157, 179, 215);">8.7%</td>
         <td style="background-color: rgb(158, 180, 215);">8.6%</td>
         <td style="background-color: rgb(157, 179, 214);">8.7%</td>
         <td style="background-color: rgb(166, 186, 218);">7.9%</td>
         <td style="background-color: rgb(155, 178, 214);">8.9%</td>
         <td style="background-color: rgb(152, 175, 212);">9.1%</td>
         <td style="background-color: rgb(158, 180, 215);">8.6%</td>
         <td style="background-color: rgb(155, 178, 214);">8.9%</td>
         <td style="background-color: rgb(143, 168, 209);">10.0%</td>
         <td style="background-color: rgb(136, 163, 206);">10.6%</td>
         <td style="background-color: rgb(139, 165, 207);">10.3%</td>
         <td style="background-color: rgb(136, 163, 206);">10.6%</td>
         <td style="background-color: rgb(148, 172, 211);">9.6%</td>
         <td style="background-color: rgb(160, 182, 216);">8.4%</td>
         <td style="background-color: rgb(126, 155, 202);">11.4%</td>
      </tr>
      <tr>
         <td  style="background-color: rgb(121, 85, 72); color: rgb(255, 255, 255);">Druid</td>
         <td style="background-color: rgb(106, 140, 194);">13.2%</td>
         <td style="background-color: rgb(114, 146, 197);">12.6%</td>
         <td style="background-color: rgb(99, 134, 191);">13.9%</td>
         <td style="background-color: rgb(88, 126, 186);">14.8%</td>
         <td style="background-color: rgb(91, 128, 188);">14.6%</td>
         <td style="background-color: rgb(90, 127, 187);">14.7%</td>
         <td style="background-color: rgb(88, 126, 186);">14.8%</td>
         <td style="background-color: rgb(87, 125, 186);">15.0%</td>
         <td style="background-color: rgb(87, 125, 186);">15.2%</td>
         <td style="background-color: rgb(87, 125, 186);">15.1%</td>
         <td style="background-color: rgb(96, 131, 189);">14.2%</td>
         <td style="background-color: rgb(98, 133, 190);">14.0%</td>
         <td style="background-color: rgb(100, 135, 191);">13.8%</td>
         <td style="background-color: rgb(107, 140, 194);">13.2%</td>
         <td style="background-color: rgb(87, 125, 186);">15.1%</td>
         <td style="background-color: rgb(87, 125, 186);">15.1%</td>
         <td style="background-color: rgb(92, 129, 188);">14.5%</td>
         <td style="background-color: rgb(108, 141, 194);">13.1%</td>
         <td style="background-color: rgb(128, 157, 203);">11.3%</td>
         <td style="background-color: rgb(108, 141, 194);">13.1%</td>
      </tr>
      <tr>
         <td  style="background-color: rgb(104, 159, 56); color: rgb(34, 34, 34);">Hunter</td>
         <td style="background-color: rgb(120, 151, 199);">12.0%</td>
         <td style="background-color: rgb(134, 162, 205);">10.7%</td>
         <td style="background-color: rgb(141, 167, 208);">10.1%</td>
         <td style="background-color: rgb(135, 162, 205);">10.7%</td>
         <td style="background-color: rgb(146, 170, 210);">9.7%</td>
         <td style="background-color: rgb(143, 168, 209);">10.0%</td>
         <td style="background-color: rgb(154, 177, 213);">8.9%</td>
         <td style="background-color: rgb(156, 178, 214);">8.8%</td>
         <td style="background-color: rgb(149, 173, 211);">9.4%</td>
         <td style="background-color: rgb(158, 180, 215);">8.6%</td>
         <td style="background-color: rgb(153, 176, 213);">9.0%</td>
         <td style="background-color: rgb(147, 171, 210);">9.6%</td>
         <td style="background-color: rgb(147, 172, 210);">9.6%</td>
         <td style="background-color: rgb(160, 181, 216);">8.4%</td>
         <td style="background-color: rgb(168, 188, 219);">7.7%</td>
         <td style="background-color: rgb(166, 186, 218);">7.9%</td>
         <td style="background-color: rgb(160, 181, 216);">8.5%</td>
         <td style="background-color: rgb(155, 178, 214);">8.9%</td>
         <td style="background-color: rgb(154, 176, 213);">9.0%</td>
         <td style="background-color: rgb(189, 204, 228);">5.8%</td>
      </tr>
      <tr>
         <td  style="background-color: rgb(79, 195, 247); color: rgb(34, 34, 34);">Mage</td>
         <td style="background-color: rgb(87, 125, 186);">16.3%</td>
         <td style="background-color: rgb(87, 125, 186);">18.4%</td>
         <td style="background-color: rgb(87, 125, 186);">17.5%</td>
         <td style="background-color: rgb(87, 125, 186);">16.4%</td>
         <td style="background-color: rgb(87, 125, 186);">15.3%</td>
         <td style="background-color: rgb(87, 125, 186);">15.0%</td>
         <td style="background-color: rgb(87, 125, 186);">15.0%</td>
         <td style="background-color: rgb(87, 125, 186);">14.9%</td>
         <td style="background-color: rgb(99, 134, 190);">13.9%</td>
         <td style="background-color: rgb(90, 127, 187);">14.7%</td>
         <td style="background-color: rgb(95, 131, 189);">14.3%</td>
         <td style="background-color: rgb(88, 125, 186);">14.9%</td>
         <td style="background-color: rgb(87, 125, 186);">15.1%</td>
         <td style="background-color: rgb(87, 125, 186);">15.2%</td>
         <td style="background-color: rgb(110, 143, 195);">12.9%</td>
         <td style="background-color: rgb(102, 137, 192);">13.6%</td>
         <td style="background-color: rgb(110, 143, 195);">12.9%</td>
         <td style="background-color: rgb(115, 146, 197);">12.5%</td>
         <td style="background-color: rgb(119, 149, 199);">12.1%</td>
         <td style="background-color: rgb(115, 147, 197);">12.4%</td>
      </tr>
      <tr>
         <td  style="background-color: rgb(255, 238, 88); color: rgb(34, 34, 34);">Paladin</td>
         <td style="background-color: rgb(159, 181, 215);">8.5%</td>
         <td style="background-color: rgb(156, 178, 214);">8.8%</td>
         <td style="background-color: rgb(156, 178, 214);">8.8%</td>
         <td style="background-color: rgb(156, 178, 214);">8.8%</td>
         <td style="background-color: rgb(152, 175, 212);">9.2%</td>
         <td style="background-color: rgb(153, 176, 213);">9.0%</td>
         <td style="background-color: rgb(153, 176, 213);">9.1%</td>
         <td style="background-color: rgb(153, 176, 213);">9.1%</td>
         <td style="background-color: rgb(152, 175, 212);">9.2%</td>
         <td style="background-color: rgb(155, 178, 214);">8.8%</td>
         <td style="background-color: rgb(148, 172, 211);">9.5%</td>
         <td style="background-color: rgb(145, 170, 210);">9.8%</td>
         <td style="background-color: rgb(143, 168, 209);">10.0%</td>
         <td style="background-color: rgb(142, 167, 208);">10.1%</td>
         <td style="background-color: rgb(153, 176, 213);">9.0%</td>
         <td style="background-color: rgb(155, 177, 213);">8.9%</td>
         <td style="background-color: rgb(166, 186, 218);">7.9%</td>
         <td style="background-color: rgb(180, 197, 224);">6.6%</td>
         <td style="background-color: rgb(177, 194, 223);">6.9%</td>
         <td style="background-color: rgb(160, 181, 216);">8.4%</td>
      </tr>
      <tr>
         <td  style="background-color: rgb(189, 189, 187); color: rgb(34, 34, 34);">Priest</td>
         <td style="background-color: rgb(157, 179, 215);">8.7%</td>
         <td style="background-color: rgb(147, 171, 210);">9.6%</td>
         <td style="background-color: rgb(156, 178, 214);">8.8%</td>
         <td style="background-color: rgb(167, 187, 218);">7.8%</td>
         <td style="background-color: rgb(173, 192, 221);">7.3%</td>
         <td style="background-color: rgb(172, 190, 220);">7.4%</td>
         <td style="background-color: rgb(161, 182, 216);">8.4%</td>
         <td style="background-color: rgb(173, 192, 221);">7.2%</td>
         <td style="background-color: rgb(178, 196, 223);">6.8%</td>
         <td style="background-color: rgb(160, 181, 216);">8.4%</td>
         <td style="background-color: rgb(165, 186, 218);">8.0%</td>
         <td style="background-color: rgb(170, 189, 220);">7.5%</td>
         <td style="background-color: rgb(176, 194, 222);">7.0%</td>
         <td style="background-color: rgb(168, 188, 219);">7.7%</td>
         <td style="background-color: rgb(158, 180, 215);">8.6%</td>
         <td style="background-color: rgb(171, 190, 220);">7.4%</td>
         <td style="background-color: rgb(180, 197, 224);">6.7%</td>
         <td style="background-color: rgb(176, 194, 222);">7.0%</td>
         <td style="background-color: rgb(179, 196, 223);">6.8%</td>
         <td style="background-color: rgb(147, 172, 211);">9.6%</td>
      </tr>
      <tr>
         <td  style="background-color: rgb(66, 66, 66); color: rgb(255, 255, 255);">Rogue</td>
         <td style="background-color: rgb(173, 191, 221);">7.3%</td>
         <td style="background-color: rgb(160, 182, 216);">8.4%</td>
         <td style="background-color: rgb(156, 178, 214);">8.8%</td>
         <td style="background-color: rgb(162, 183, 217);">8.2%</td>
         <td style="background-color: rgb(159, 180, 215);">8.6%</td>
         <td style="background-color: rgb(161, 183, 216);">8.3%</td>
         <td style="background-color: rgb(165, 185, 218);">8.0%</td>
         <td style="background-color: rgb(167, 187, 219);">7.8%</td>
         <td style="background-color: rgb(169, 188, 219);">7.7%</td>
         <td style="background-color: rgb(149, 173, 211);">9.5%</td>
         <td style="background-color: rgb(155, 178, 214);">8.8%</td>
         <td style="background-color: rgb(158, 180, 215);">8.6%</td>
         <td style="background-color: rgb(162, 183, 216);">8.3%</td>
         <td style="background-color: rgb(169, 188, 219);">7.6%</td>
         <td style="background-color: rgb(142, 167, 208);">10.1%</td>
         <td style="background-color: rgb(149, 173, 211);">9.5%</td>
         <td style="background-color: rgb(153, 176, 213);">9.1%</td>
         <td style="background-color: rgb(151, 174, 212);">9.2%</td>
         <td style="background-color: rgb(151, 175, 212);">9.2%</td>
         <td style="background-color: rgb(87, 125, 186);">15.0%</td>
      </tr>
      <tr>
         <td  style="background-color: rgb(92, 107, 192); color: rgb(255, 255, 255);">Shaman</td>
         <td style="background-color: rgb(172, 191, 221);">7.3%</td>
         <td style="background-color: rgb(184, 200, 225);">6.3%</td>
         <td style="background-color: rgb(187, 203, 227);">6.0%</td>
         <td style="background-color: rgb(192, 206, 229);">5.6%</td>
         <td style="background-color: rgb(189, 204, 228);">5.8%</td>
         <td style="background-color: rgb(192, 206, 229);">5.6%</td>
         <td style="background-color: rgb(196, 209, 231);">5.2%</td>
         <td style="background-color: rgb(198, 211, 231);">5.1%</td>
         <td style="background-color: rgb(202, 214, 233);">4.7%</td>
         <td style="background-color: rgb(200, 212, 232);">4.9%</td>
         <td style="background-color: rgb(201, 213, 232);">4.8%</td>
         <td style="background-color: rgb(206, 217, 234);">4.4%</td>
         <td style="background-color: rgb(204, 216, 234);">4.5%</td>
         <td style="background-color: rgb(202, 214, 233);">4.7%</td>
         <td style="background-color: rgb(206, 217, 234);">4.4%</td>
         <td style="background-color: rgb(208, 218, 235);">4.2%</td>
         <td style="background-color: rgb(213, 222, 237);">3.7%</td>
         <td style="background-color: rgb(216, 224, 239);">3.5%</td>
         <td style="background-color: rgb(214, 223, 238);">3.6%</td>
         <td style="background-color: rgb(220, 228, 241);">3.0%</td>
      </tr>
      <tr>
         <td  style="background-color: rgb(156, 39, 176); color: rgb(255, 255, 255);">Warlock</td>
         <td style="background-color: rgb(87, 125, 186);">15.1%</td>
         <td style="background-color: rgb(95, 131, 189);">14.2%</td>
         <td style="background-color: rgb(87, 125, 186);">15.5%</td>
         <td style="background-color: rgb(87, 125, 186);">17.2%</td>
         <td style="background-color: rgb(87, 125, 186);">18.7%</td>
         <td style="background-color: rgb(87, 125, 186);">19.0%</td>
         <td style="background-color: rgb(87, 125, 186);">19.5%</td>
         <td style="background-color: rgb(87, 125, 186);">21.0%</td>
         <td style="background-color: rgb(87, 125, 186);">23.2%</td>
         <td style="background-color: rgb(87, 125, 186);">18.5%</td>
         <td style="background-color: rgb(87, 125, 186);">19.6%</td>
         <td style="background-color: rgb(87, 125, 186);">20.0%</td>
         <td style="background-color: rgb(87, 125, 186);">20.6%</td>
         <td style="background-color: rgb(87, 125, 186);">20.8%</td>
         <td style="background-color: rgb(87, 125, 186);">19.2%</td>
         <td style="background-color: rgb(87, 125, 186);">21.2%</td>
         <td style="background-color: rgb(87, 125, 186);">24.3%</td>
         <td style="background-color: rgb(87, 125, 186);">28.0%</td>
         <td style="background-color: rgb(87, 125, 186);">30.7%</td>
         <td style="background-color: rgb(87, 125, 186);">19.2%</td>
      </tr>
      <tr>
         <td  style="background-color: rgb(244, 67, 54); color: rgb(255, 255, 255);">Warrior</td>
         <td style="background-color: rgb(205, 216, 234);">4.4%</td>
         <td style="background-color: rgb(209, 219, 236);">4.1%</td>
         <td style="background-color: rgb(217, 226, 239);">3.3%</td>
         <td style="background-color: rgb(219, 227, 240);">3.2%</td>
         <td style="background-color: rgb(224, 231, 242);">2.7%</td>
         <td style="background-color: rgb(228, 234, 244);">2.3%</td>
         <td style="background-color: rgb(227, 233, 243);">2.5%</td>
         <td style="background-color: rgb(229, 235, 244);">2.3%</td>
         <td style="background-color: rgb(231, 237, 245);">2.1%</td>
         <td style="background-color: rgb(226, 232, 243);">2.6%</td>
         <td style="background-color: rgb(225, 232, 242);">2.6%</td>
         <td style="background-color: rgb(224, 231, 242);">2.7%</td>
         <td style="background-color: rgb(228, 234, 244);">2.4%</td>
         <td style="background-color: rgb(229, 235, 244);">2.2%</td>
         <td style="background-color: rgb(227, 233, 243);">2.4%</td>
         <td style="background-color: rgb(232, 237, 245);">2.0%</td>
         <td style="background-color: rgb(234, 239, 246);">1.8%</td>
         <td style="background-color: rgb(236, 240, 247);">1.7%</td>
         <td style="background-color: rgb(232, 237, 245);">2.0%</td>
         <td style="background-color: rgb(233, 238, 246);">1.9%</td>
      </tr>
   </tbody>
</table>

You can use BeautifulSoup to parse it and manipulate the data. For example, if you add this rest of the code instead of print(table):

from bs4 import BeautifulSoup

result = []
soup = BeautifulSoup(table, 'html.parser')
lines = soup.select('tr')

for line in lines:
    obj = {}
    try:
        obj[line.find_all('td')[0].text] = {
            'B1-10':line.find_all('td')[1].text,
            'S1-10':line.find_all('td')[2].text,
            'G6-10':line.find_all('td')[3].text,
            'G1-5':line.find_all('td')[4].text,
            'P9-10':line.find_all('td')[5].text,
            'P7-8':line.find_all('td')[6].text,
            'P5-6':line.find_all('td')[7].text,
            'P3-4':line.find_all('td')[8].text,
            'P1-2':line.find_all('td')[9].text,
            'D10':line.find_all('td')[10].text,
            'D9':line.find_all('td')[11].text,
            'D8':line.find_all('td')[12].text,
            'D7':line.find_all('td')[13].text,
            'D6':line.find_all('td')[14].text,
            'D5':line.find_all('td')[15].text,
            'D4':line.find_all('td')[16].text,
            'D3':line.find_all('td')[17].text,
            'D2':line.find_all('td')[18].text,
            'D1':line.find_all('td')[19].text,
            'L':line.find_all('td')[20].text,
        }
        result.append(obj)
    except:
        pass

print(result)

You will end up with a JSON object that looks like this:

[
   {
      "DemonHunter":{
         "B1-10":"7.1%",
         "S1-10":"6.8%",
         "G6-10":"7.3%",
         "G1-5":"7.2%",
         "P9-10":"8.2%",
         "P7-8":"8.7%",
         "P5-6":"8.6%",
         "P3-4":"8.7%",
         "P1-2":"7.9%",
         "D10":"8.9%",
         "D9":"9.1%",
         "D8":"8.6%",
         "D7":"8.9%",
         "D6":"10.0%",
         "D5":"10.6%",
         "D4":"10.3%",
         "D3":"10.6%",
         "D2":"9.6%",
         "D1":"8.4%",
         "L":"11.4%"
      }
   },
   {
      "Druid":{
         "B1-10":"13.2%",
         "S1-10":"12.6%",
         "G6-10":"13.9%",
         "G1-5":"14.8%",
         "P9-10":"14.6%",
         "P7-8":"14.7%",
         "P5-6":"14.8%",
         "P3-4":"15.0%",
         "P1-2":"15.2%",
         "D10":"15.1%",
         "D9":"14.2%",
         "D8":"14.0%",
         "D7":"13.8%",
         "D6":"13.2%",
         "D5":"15.1%",
         "D4":"15.1%",
         "D3":"14.5%",
         "D2":"13.1%",
         "D1":"11.3%",
         "L":"13.1%"
      }
   },
   {
      "Hunter":{
         "B1-10":"12.0%",
         "S1-10":"10.7%",
         "G6-10":"10.1%",
         "G1-5":"10.7%",
         "P9-10":"9.7%",
         "P7-8":"10.0%",
         "P5-6":"8.9%",
         "P3-4":"8.8%",
         "P1-2":"9.4%",
         "D10":"8.6%",
         "D9":"9.0%",
         "D8":"9.6%",
         "D7":"9.6%",
         "D6":"8.4%",
         "D5":"7.7%",
         "D4":"7.9%",
         "D3":"8.5%",
         "D2":"8.9%",
         "D1":"9.0%",
         "L":"5.8%"
      }
   },
   {
      "Mage":{
         "B1-10":"16.3%",
         "S1-10":"18.4%",
         "G6-10":"17.5%",
         "G1-5":"16.4%",
         "P9-10":"15.3%",
         "P7-8":"15.0%",
         "P5-6":"15.0%",
         "P3-4":"14.9%",
         "P1-2":"13.9%",
         "D10":"14.7%",
         "D9":"14.3%",
         "D8":"14.9%",
         "D7":"15.1%",
         "D6":"15.2%",
         "D5":"12.9%",
         "D4":"13.6%",
         "D3":"12.9%",
         "D2":"12.5%",
         "D1":"12.1%",
         "L":"12.4%"
      }
   },
   {
      "Paladin":{
         "B1-10":"8.5%",
         "S1-10":"8.8%",
         "G6-10":"8.8%",
         "G1-5":"8.8%",
         "P9-10":"9.2%",
         "P7-8":"9.0%",
         "P5-6":"9.1%",
         "P3-4":"9.1%",
         "P1-2":"9.2%",
         "D10":"8.8%",
         "D9":"9.5%",
         "D8":"9.8%",
         "D7":"10.0%",
         "D6":"10.1%",
         "D5":"9.0%",
         "D4":"8.9%",
         "D3":"7.9%",
         "D2":"6.6%",
         "D1":"6.9%",
         "L":"8.4%"
      }
   },
   {
      "Priest":{
         "B1-10":"8.7%",
         "S1-10":"9.6%",
         "G6-10":"8.8%",
         "G1-5":"7.8%",
         "P9-10":"7.3%",
         "P7-8":"7.4%",
         "P5-6":"8.4%",
         "P3-4":"7.2%",
         "P1-2":"6.8%",
         "D10":"8.4%",
         "D9":"8.0%",
         "D8":"7.5%",
         "D7":"7.0%",
         "D6":"7.7%",
         "D5":"8.6%",
         "D4":"7.4%",
         "D3":"6.7%",
         "D2":"7.0%",
         "D1":"6.8%",
         "L":"9.6%"
      }
   },
   {
      "Rogue":{
         "B1-10":"7.3%",
         "S1-10":"8.4%",
         "G6-10":"8.8%",
         "G1-5":"8.2%",
         "P9-10":"8.6%",
         "P7-8":"8.3%",
         "P5-6":"8.0%",
         "P3-4":"7.8%",
         "P1-2":"7.7%",
         "D10":"9.5%",
         "D9":"8.8%",
         "D8":"8.6%",
         "D7":"8.3%",
         "D6":"7.6%",
         "D5":"10.1%",
         "D4":"9.5%",
         "D3":"9.1%",
         "D2":"9.2%",
         "D1":"9.2%",
         "L":"15.0%"
      }
   },
   {
      "Shaman":{
         "B1-10":"7.3%",
         "S1-10":"6.3%",
         "G6-10":"6.0%",
         "G1-5":"5.6%",
         "P9-10":"5.8%",
         "P7-8":"5.6%",
         "P5-6":"5.2%",
         "P3-4":"5.1%",
         "P1-2":"4.7%",
         "D10":"4.9%",
         "D9":"4.8%",
         "D8":"4.4%",
         "D7":"4.5%",
         "D6":"4.7%",
         "D5":"4.4%",
         "D4":"4.2%",
         "D3":"3.7%",
         "D2":"3.5%",
         "D1":"3.6%",
         "L":"3.0%"
      }
   },
   {
      "Warlock":{
         "B1-10":"15.1%",
         "S1-10":"14.2%",
         "G6-10":"15.5%",
         "G1-5":"17.2%",
         "P9-10":"18.7%",
         "P7-8":"19.0%",
         "P5-6":"19.5%",
         "P3-4":"21.0%",
         "P1-2":"23.2%",
         "D10":"18.5%",
         "D9":"19.6%",
         "D8":"20.0%",
         "D7":"20.6%",
         "D6":"20.8%",
         "D5":"19.2%",
         "D4":"21.2%",
         "D3":"24.3%",
         "D2":"28.0%",
         "D1":"30.7%",
         "L":"19.2%"
      }
   },
   {
      "Warrior":{
         "B1-10":"4.4%",
         "S1-10":"4.1%",
         "G6-10":"3.3%",
         "G1-5":"3.2%",
         "P9-10":"2.7%",
         "P7-8":"2.3%",
         "P5-6":"2.5%",
         "P3-4":"2.3%",
         "P1-2":"2.1%",
         "D10":"2.6%",
         "D9":"2.6%",
         "D8":"2.7%",
         "D7":"2.4%",
         "D6":"2.2%",
         "D5":"2.4%",
         "D4":"2.0%",
         "D3":"1.8%",
         "D2":"1.7%",
         "D1":"2.0%",
         "L":"1.9%"
      }
   }
]
  • Related