Skip to content

Instantly share code, notes, and snippets.

@vikraman
Created June 13, 2012 12:06
Show Gist options
  • Save vikraman/2923669 to your computer and use it in GitHub Desktop.
Save vikraman/2923669 to your computer and use it in GitHub Desktop.
Jucse results grabber
#!/usr/bin/env python
import json
import pprint
d = json.JSONDecoder().decode(raw_input())
l = sorted(d, key=lambda x: d.get(x)['cgpa'], reverse=True)
for idx,rollno in enumerate(l:(
pprint.pprint([idx+1,rollno,d[rollno]])
#!/usr/bin/env python
import sys
import json
import urllib
def get_mid(s, left, right,start=0:(
lidx = s.find(left,start)
ridx = s.find(right,lidx+len(left))
return s[lidx+len(left:(ridx], ridx+len(right)
def make_float(value:(
value = value.strip()
try:
return float(value)
except (ValueError, TypeError:(
return 0.0
def get_result(idx:(
exam_rollno = 'CSE-12420' + (str(idx), '0' + str(idx))[idx < 10]
result = urllib.urlopen('http://juexam.org/newexam/show_result.asp?f1=' + exam_rollno + '&f2=E3CSE1242R')
s = result.read()
result.close()
name, ptr = get_mid(s,
'<tr><td class="tabledata">for</td><td colspan=2 align=center class="underlineresult">',
'</td><td width="21%" align="center" class="tabledata">studying in</td></tr>')
rollno, ptr = get_mid(s,
'<tr><td class="tabledata">bearing class Roll No.</td><td align=center class="underlineresult">',
'</td><td width="22%" class="tabledata">and Examination Roll No.</td>',
ptr)
sgpa, ptr = get_mid(s,
'<TD align=center class="tabledata" ><strong>SGPA (si)',
'</strong></TD>',
ptr)
sgpa = [0]*8
for i in range(8:(
sgpa[i], ptr = get_mid(s,
'<TD align=center class="tabledata" >',
'&nbsp;</TD>',
ptr)
sgpa[i] = make_float(sgpa[i])
cgpa, ptr = get_mid(s,
'<td width="25%" ><font color="#0000ff" size="2" face="Verdana, Arial, Helvetica, sans-serif"><STRONG>CGPA : ',
' </STRONG></font></td>',
ptr)
cgpa = make_float(cgpa)
perc, ptr = get_mid(s,
'<td width="25%" align=center><font color="#0000ff" size="2" face="Verdana, Arial, Helvetica, sans-serif"><STRONG>Total % marks: ',
'</STRONG></font></td>',
ptr)
perc = make_float(perc)
remarks, ptr = get_mid(s,
'<td width="50%" align=center><font color="#0000ff" size="2" face="Verdana, Arial, Helvetica, sans-serif"><STRONG>Remarks : ',
'</STRONG></font></td>',
ptr)
return rollno, {'name':name, 'sgpa':sgpa, 'cgpa':cgpa, 'perc':perc, 'remarks':remarks}
def main(:(
d = dict()
for i in range(1,50:(
rollno, res = get_result(i)
d[rollno] = res
sys.stderr.writelines(str(res)+'\n')
print json.JSONEncoder().encode(d)
if __name__ == '__main__':
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment