统计hihoCoder挑战赛成绩的Python脚本

2月有两场比赛,总分前八的有纪念品。第一场排第11,要拿到奖品毫无把握。。心血来潮写了个用来计算几场比赛总分排名的脚本,好让自己第一时间知道能不能得奖(囧),也稍微试下BeautifulSoup。

# -*- coding: utf-8 -*-
from bs4 import BeautifulSoup
import urllib
def updateScoreList(scoreList, url):
    """
    :param scoreList:
    :param url:
    :return:
    """
    page = urllib.urlopen(url)
    soup = BeautifulSoup(page)
    contestants = soup.find_all(class_="fn-ell")
    for person in contestants:
        userName = person.string
        row = person.parent.parent # table row for this contestant
        statics = row.find_all(‘td‘)
        scoreTag = statics[2]
        score = int(unicode(scoreTag.string))
        if userName in scoreList:
            scoreList[userName][‘score‘] += score
            scoreList[userName][‘numOfContests‘] += 1
        else:
            scoreList[userName] = {‘score‘:score,‘numOfContests‘:1}

def generateRankList(urlList, numOfWinners):
    """
    :param urlList: url of hihocoder challenge contest rank pages
    :param numOfWinners: number of winners
    :return: the first numOfWinners winners in these contests
    """
    scoreList = {}
    for url in urlList:
        updateScoreList(scoreList, url)
    rank = []
    for userName, person in scoreList.items():
        rank.append((userName, person[‘score‘], person[‘numOfContests‘]))
    rank.sort(cmp=lambda p1, p2:p2[1]-p1[1])
    return rank[:numOfWinners]

def main():
    urlList = []
    for num in range(8, 9):
        urlList.append("http://hihocoder.com/contest/challenge%d/rank" % num)
    rankList = generateRankList(urlList, 8)
    print u"用户名 总分 参赛次数"
    for person in rankList:
       print person

if __name__ == "__main__":
    main()

时间: 2024-10-11 10:50:27

统计hihoCoder挑战赛成绩的Python脚本的相关文章

PTA的Python练习题(十二)-第4章-7 统计学生平均成绩与及格人数

第4章-7 统计学生平均成绩与及格人数 a=eval(input()) b=list(map(int,input().split())) sum=sum(b) c=[i for i in b if i>=60] count=len(c) print('average = %.1f'%(sum/a)) print('count = %d'%(count)) 如果这里用append输入只能实现一行一行输入,不能实现同一行输入 知识点(列表的操作): """ ①实现嵌套列表的

如何在命令行里运行python脚本

python是一款应用非常广泛的脚本程序语言,谷歌公司的网页就是用python编写.python在生物信息.统计.网页制作.计算等多个领域都体现出了强大的功能.python和其他脚本语言如java.R.Perl 一样,都可以直接在命令行里运行脚本程序.本文给大家介绍一下如何在命令行里运行python脚本 工具/原料 python:CMD命令行:windows操作系统 方法/步骤 首先下载安装python,建议安装2.7版本以上,3.0版本以下,由于3.0版本以上不向下兼容,体验较差. 打开文本编

Python脚本性能剖析

################### #Python脚本性能剖析 ################### cProfile/profile/hotshot用于统计Python脚本各部分运行频率和耗费时间等统计信息.pstats可用于格式化这些信息 cProfile,属C扩展.开销较小,适合剖析长时间执行的Python程序,推荐使用此模块 profile.纯Python模块,存在明显开销,但想对其扩展的话相对照较easy hotshot,实验性的C模块.主要关注开销最小化,现已不再被维护将来可能

基于binlog来分析mysql的行记录修改情况(python脚本分析)

最近写完mysql flashback,突然发现还有有这种使用场景:有些情况下,可能会统计在某个时间段内,MySQL修改了多少数据量?发生了多少事务?主要是哪些表格发生变动?变动的数量是怎么样的? 但是却不需要行记录的修改内容,只需要了解 行数据的 变动情况.故也整理了下. 昨晚写的脚本,因为个人python能力有限,本来想这不发这文,后来想想,没准会有哪位园友给出优化建议. 如果转载,请注明博文来源: www.cnblogs.com/xinysu/   ,版权归 博客园 苏家小萝卜 所有.望各

Python脚本分析CPU使用情况

在这篇文章中,我将讨论一个工具,用以分析Python中CPU使用情况.CPU分析是通过分析CPU执行代码的方式来测量代码的性能,以此找到代码中的不妥之处,然后处理它们. 接下来我们将看看如何跟踪Python脚本使用时CPU使用情况,重点关注以下几个方面: 1.cProfile 2.line_profiler 3.pprofile 4.vprof 测量CPU使用率 对于这篇文章,我将主要使用与内存分析中使用脚本相同的脚本,具体如下: 另外,请记住,在PyPy2中,您需要使用与之配合的pip版本:

phpBB3导入用户的Python脚本

关联的数据表 在phpBB3中导入用户时, 需要处理的有两张表, 一个是 users, 一个是 user_group. 如果是新安装的论坛, 在每次导入之前, 用以下语句初始化: DELETE FROM phpbb_users WHERE user_id > 47; alter table phpbb_users auto_increment = 48; DELETE FROM phpbb_user_group where user_id > 48; DELETE FROM phpbb_use

windows 10 如何设定计划任务自动执行 python 脚本?

我用 python 写了一些脚本,有一些是爬虫脚本,比如爬取知乎特定话题的热门问题,有一些是定期的统计分析脚本,输出统计结果到文档中.之前我都是手动执行这些脚本,现在我希望如何这些脚本能自动定时执行.那么,windows 10 操作系统如何定时自动执行 python 脚本? 我的设备是 windows 10操作系统,自带的"计划任务"可以满足我的需求,具体操作步骤,整理如下. 步骤1:打开 "计算机管理" 界面 点击电脑左下角的windows图标,或者键盘的wind

Python脚本远程批量执行命令

摘要 本文主要写用python脚本远程连接多台服务器,然后批量执行命令,最终返回命令执行结果. 这个可以说是Ansible,Puppet等工具的最简单的雏形. 做运维的同学应该都知道的. 正文 multi_task.py #_*_coding:utf-8_*_ import  multiprocessing import paramiko import getpass import ConfigParser class MultiTask(object):     '''handles all 

python脚本修改hosts文件

记一次使用python脚本来修改hosts文件,由于公司服务器需要换ip地址,服务器里都是Linux系统,而hosts文件中有些解析的ip,手动一台一台的解析太麻烦,就写了这个脚本.本来以为感觉很简单,但是写的过程真不好写,也试过shell脚本,不过也不好写.然后就直接用python写,也找了一些网上的教程,不过也没有很好的解决问题.下面把脚本贴出来记录下 #!/usr/bin/python #coding:utf8 import os import sys import re hostsfil