siteNames = {"Mathematica", "Money", "Biology", "Code Golf", "Signal Processing", "SmugMug", "Software testing", "Cryptography", "Startup business", "Board games", "Brewing", "Quant. Finance", "Biblical H", "Lego", "Writers", "Graphic Design",  "AudioVideo", "Poker", "Martial Arts", "Code review", "Project Mgmt", "Fit & Nutrition", "Motor Maint.", "Parenting", "Gardening", "Personal prod", "French", "Linguistics", "Cog. Sci.", "Comp. Sci", "Computational"};

siteList = {
"http://area51.stackexchange.com/proposals/37304/mathematica",
"http://area51.stackexchange.com/proposals/1721/personal-finance-and-money",
"http://area51.stackexchange.com/proposals/12502/biology",
"http://area51.stackexchange.com/proposals/4570/code-golf-programming-puzzles",
"http://area51.stackexchange.com/proposals/1691/signal-processing",
"http://area51.stackexchange.com/proposals/25069/smugmug",
"http://area51.stackexchange.com/proposals/2241/software-quality-assurance-testing",
"http://area51.stackexchange.com/proposals/15811/cryptography",
"http://area51.stackexchange.com/proposals/6243/startup-business",
"http://area51.stackexchange.com/proposals/5220/board-and-card-games",
"http://area51.stackexchange.com/proposals/1619/homebrewing-beer-wine-etc",
"http://area51.stackexchange.com/proposals/117/quantitative-finance",
"http://area51.stackexchange.com/proposals/1817/biblical-hermeneutics",
"http://area51.stackexchange.com/proposals/10919/lego",
"http://area51.stackexchange.com/proposals/1623/writers",
"http://area51.stackexchange.com/proposals/1924/graphic-design",
"http://area51.stackexchange.com/proposals/4/audio-video-production",
"http://area51.stackexchange.com/proposals/3425/poker",
"http://area51.stackexchange.com/proposals/4470/martial-arts",
"http://area51.stackexchange.com/proposals/11464/code-review",
"http://area51.stackexchange.com/proposals/10947/project-management",
"http://area51.stackexchange.com/proposals/7080/fitness-nutrition",
"http://area51.stackexchange.com/proposals/1321/motor-vehicle-maintenance-and-repair",
"http://area51.stackexchange.com/proposals/4861/parenting",
"http://area51.stackexchange.com/proposals/1369/gardening-and-landscaping",
"http://area51.stackexchange.com/proposals/4296/personal-productivity",
"http://area51.stackexchange.com/proposals/29480/french-language-usage",
"http://area51.stackexchange.com/proposals/6673/linguistics",
"http://area51.stackexchange.com/proposals/2149/cognitive-sciences",
"http://area51.stackexchange.com/proposals/35636/computer-science",
"http://area51.stackexchange.com/proposals/28815/computational-science"};

srcList=Map[Import[#,"Plaintext"] & , siteList];

(* gustavo delfino's code for scraping the site*)

getSiteData[siteSource_] := With[
  {cmt = Whitespace ~~ comment : ("Excellent" | "Needs Work" | "Okay"),
   src =  StringReplace[siteSource, "," -> ""]},
  StringCases[src,
   {percent : NumberString ~~ "%" ~~ Whitespace ~~ "answered" ~~ 
      cmt -> {"answered", percent}, 
    grade : NumberString ~~ Whitespace ~~ "questions" ~~ Whitespace ~~
       "per day" ~~ cmt -> {"questions", grade}, 
    avidUsers : NumberString ~~ Whitespace ~~ "avid users" ~~ 
      Whitespace ~~ totalUsers : NumberString ~~ Whitespace ~~ 
      "total users" ~~ cmt -> {"avidusers", {avidUsers, totalUsers}},
    answerRatio : NumberString ~~ Whitespace ~~ "answer ratio" ~~ 
      cmt -> {"answerratio", answerRatio},
    visitsPerDay : NumberString ~~ Whitespace ~~ "visits/day" ~~ 
      cmt -> {"visits", visitsPerDay}}]]

drawBox[x_, y_, text_, color_] := Module[{},
   {Opacity[0.3],
    color,
    EdgeForm[{Black, AbsoluteThickness[0.2]}], 
    Rectangle[{x, y}, {x + boxWidth, y + 1}, RoundingRadius -> 0.2],
    Opacity[1], 
    Text[Style[text, 12, Black, FontFamily -> "Helvetica", 
      FontWeight -> "Bold"], {x + boxWidth/2, y + .45}], 
    color,
    Disk[{x, y + 0.5}, 0.5]}];

(* build a stack of boxes for each site *)

siteGraphics[siteName_, siteData_] := Module[
   {data = Reverse[getSiteData[siteData]]}, 
   x = 0; y = 0; boxWidth = 5;
   results = Reap[
     Sow[(* 
      site name*)
      {Black, 
       Text[Style[siteName, 11, FontFamily -> "Helvetica", 
         FontWeight -> "Bold"], {x + boxWidth /2, y - 0.5}]}];
     Do[
      key = el[[1]];
      value = ToExpression[el[[2]]];
      Switch[
       key,
       "visits", 
       Sow[
        drawBox[x, y, value, 
         Which[value < 500, Red, value < 1500, Orange, True, Green]]],
       "answered", 
       Sow[
        drawBox[x, y, value, 
         Which[value < 80, Red, value < 90, Orange, True, Green]]],
       "avidusers", (* two values, avid then total returned in a single list *)
       {Sow[
         drawBox[x, y, value[[1]], 
          Which[value[[1]] < 100, Red, value[[1]] <= 150, Orange, 
           True, Green]]];
        y += 1.2;
        (* don't know what colors for total user values ...? *)      
          Sow[drawBox[x, y, value[[2]], 
          Which[value[[2]] < 300, Red, value[[2]] <= 600, Orange, 
           True, Green]]]},
       "answerratio", 
       Sow[
        drawBox[x, y, value, 
         Which[value < 1, Red, value <= 2.5, Orange, True, Green]]],
       "questions",(* 15 is good *)
       Sow[drawBox[x, y, value, 
         Which[value <= 5, Red, value < 15, Orange, value >= 15,  
          Green]]]
       ];
      x += 0; y += 1.2; (* next box *), 
      {el, data}] (* End Do *)
     ]; (* end Reap *)
   Graphics[{results[[2]]}] (* 
   why does Reap do that Null thing? *)
   ];

finalGraphic = 
  siteGraphics[#[[1]], #[[2]]] & /@ Transpose[{siteNames, srcList}] /. 
   RGBColor[0, 1, 0] :> Darker[Green, 0.3];

g = GraphicsGrid[Partition[finalGraphic, 7, 7, {1, 1}, { }], 
  ImageSize -> 800, Spacings -> {25, 100}]