这段时间的百度之星又错过了。老了,也做不动了,第二次题目a了一个,第二个一个dp的题目感觉方法对的,可硬是没有调过,看来真的是更不行了。

对于今年的Astar我就不吐槽了。查成绩有点麻烦,翻页翻到手抽筋,写一python脚本,把抓出来的成绩贴贴吧里面,结果被删贴,贴脚本也被删贴,郁闷!

还是把程序贴这里吧

#!/usr/bin/python
# coding=utf8
import sys
import urllib2
from re import sub

problemurl="http://astar.baidu.com/index.php?r=home/detail&id=10"


def analysisPage(html, csvfile):
	html = sub(r'[\s]+', ' ', html)
	tbody = sub(r'(^.*<tbody>)|(</tbody>.*$)', "", html)
	items = sub(r'[\s]+', ' ', sub(r'<[^<>]*>', ' ', tbody))
	items = items.strip().split(' ')
	for i in range(len(items) / 5):
		record = ",".join(items[i*5:i*5+5])
		print record
		csvfile.write(record + "\n")
	
def getResult(problemurl):
	csvfile = open("result.csv", "w")
	csvfile.write('编号,用户名,语言,文件名,得分\n')
	pageid = 0
	while True:
		pageid += 1
		url = "%s&BccSubmitLogs_page=%d&ajax=projects-submit-logs" % (problemurl, pageid)
		html = urllib2.urlopen(url).read()
		analysisPage(html, csvfile)
		if html.find(u"下一页") == -1 or html.find('class="next hidden"') != -1:
			break
	csvfile.close()

if __name__ == '__main__':
#	reload(sys)
#	sys.setdefaultencoding("utf8")
	#getResult(problemurl)
	#exit(1)
	if len(sys.argv) != 2:
		print "Usage: astar2012.py problem_url"
		exit(1)
	getResult(sys.argv[1])

 

总结一下,现在接触过下面这些python库了

  • PIL(Python Imaging Lib)/Image: 图像处理的库

  • cv/cv2:计算机视觉

  • numpy:NumPy is the fundamental package for scientific computing with Python

  • math:数学库

  • csv:csv文件处理

  • MySQLdb:链接mysql数据库

  • mlpy:机器学习库

  • matplotlib:It provides both a very quick way to visualize data from Python and publication-quality figures in many formats. 像matlab那么,可以画出很漂亮的图

  • M2Crypto、Crypto、pyecc:密码学库(hash,对称加密算法,非对称加密算法,签名认证等)

  • webpy:构建一个轻量级网站A minimalist web framework written in Python

  • urllib/urllib2:url访问,页面抓取等

  • re:正则表达式处理

  • os、sys:顾名思义,就是系统、文件的一些操作

  • ConfigParser:配置文件处理

  • Tkinter:图形界面库

python的各种库还是很强大的,o(∩∩)o...哈哈