模拟SDUT OJ登陆
来源:互联网 发布:迷彩服淘宝分类 编辑:程序博客网 时间:2024/06/05 07:54
#!/usr/bin/env python#-*-coding:utf-8-*-import sysimport urllib, urllib2import cookielibimport getpassfrom bs4 import BeautifulSouphome_url = 'http://acm.sdut.edu.cn/onlinejudge2/index.php/Home'login_url = 'http://acm.sdut.edu.cn/onlinejudge2/index.php/Home/Login/login' #安装cookie处理cookie_support = urllib2.HTTPCookieProcessor(cookielib.CookieJar())opener = urllib2.build_opener(cookie_support)urllib2.install_opener(opener)#初始化cookiehome_temp = urllib2.urlopen(home_url)#伪装成goole浏览器,以免服务器拒绝访问headers = {'User-Agent':'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36'}uername = raw_input('请输入用户名')key = getpass.getpass('请输入登录密码') #密码不可见values = {'user_name': uername, 'password': key}#loginpost = urllib.urlencode(values)request = urllib2.Request(login_url, post, headers)response = urllib2.urlopen(request)html = response.read()#解析登录后的页面并判断是否登录成功soup = BeautifulSoup(html, 'lxml')if soup.find(text = 'Logout') != None: print '登录成功!'else: print '登录失败!' sys.exit(0) #直接退出 #找到个人信息页面info_url = 'http://acm.sdut.edu.cn' + soup.find(class_ = 'nav navbar-nav navbar-right').li.a['href']html = urllib2.urlopen(info_url)info = BeautifulSoup(html, 'lxml')#然后就可以搞事情啦~获取你想要的信息,比如这里我们获取用户AC的题目temp = str(info.find_all(class_ = 'inner problem_list')[1])temp = temp[33:-7]t = temp.split('</a>')problem = []for i in range(len(t)-1):string = str(t[i])problem.append(string[-4:])problem.sort()print problemprint '总共%d个'% len(problem)
放一张运行截图吧
阅读全文
1 0
- 模拟SDUT OJ登陆
- C/C++经典程序训练3---模拟计算器 (sdut oj)
- SDUT OJ 2718
- SDUT OJ -2892 A
- SDUT OJ-2896
- SDUT OJ 2862 勾股定理
- SDUT OJ 走迷宫
- SDUT OJ 2399 Palindrome
- SDUT OJ 走楼梯
- SDUT oj 玲珑龟
- 二叉排序树 (sdut oj 2482)
- SDUT oj 二叉排序树
- SDUT OJ 3374
- 小鑫追女神 (sdut oj)
- 闰年 (sdut oj)
- 优越数 (sdut oj)
- 相似三角形 (sdut oj)
- 洗衣服 (sdut oj)
- iOS转前端之如何适配不同屏幕尺寸方案
- 编写可维护的javascript(八):避免“空比较”
- 性能分析工具perf的使用
- hdu6034-贪心
- Android零基础入门第16节:Android用户界面开发概述
- 模拟SDUT OJ登陆
- SpringMVC之@ModelAttribute学习
- 微信小程序免费SSL证书https、TLS版本问题的解决方案
- 737
- 闭锁、同步屏障、信号量详解
- 产品经理必备神器——Axure软件试用评测
- 深入浅出学Spring Data JPA toPredicate Predicate[] p = new Predicate[list.size()]; query.where(cb.and 201
- MySQL170724
- Greenplum聚合函数的两种实现:HashAggregate与GroupAggregate