利用Python获取ZOJ所有题目的名字
先贴出代码,行数比较少,仅仅用正则表达式分析出题目Title所在的标签并把题目Title提取出来
import urllib.request
import re
import dbm
#定义URL,其中%d用于替换页码
url = 'http://acm.zju.edu.cn/onlinejudge/showProblems.do?contestId=1&pageNumber=%d'
#连接持久化字典,这里用创建的方法'c'来创建写入
db = dbm.open('zoj_list', 'c') for index in range(1, 30):
this_url = url % (index)#替换URL中代表页码的数字
html = urllib.request.urlopen(this_url).read()#read方法读取页面HTML
html = html.decode('utf-8')#UTF-8编码,没有这句会提示错误
title = re.compile('<font color="blue">.*</font>')#正则之,编译之
key = ''
cnt = 1
for x in title.findall(html):
title_parse = re.compile('<[^>]+>')#除去标签的正则
get = title_parse.sub('', x)#除去标签
if cnt % 2 == 0:
value = get
db[key] = value
else:
key = get
cnt += 1
这个把key和value通过字典保存到了'zoj_list'这个持久化字典中。
读取这个字典的代码如下:
import dbm
db = dbm.open('zoj_list', 'r')
print(db[''])
for index in range(1001, 2000):
in_ch = str(index)
print(db[in_ch])
利用Python获取ZOJ所有题目的名字的更多相关文章
- 利用Python获取统计自己的qq群成员信息
利用python获取自己的qq群成员信息! 首先说明一下需要使用的工具以及技术:python3 + selenium selenium安装方法:pip install selenium 前提:获取自己 ...
- 利用python获取自己的qq群成员信息
利用python获取自己的qq群成员信息! 首先说明一下需要使用的工具以及技术:python3 + selenium selenium安装方法:pip install selenium 前提:获取自己 ...
- 有关利用python获取网页, 以及KDD近几年论文标题与摘要链接
最近一直在看KDD的论文,不过,由于老师并没有什么合理的方向性,所以考虑把kdd中的大部分内容都利用python将所有标题.摘要获取下来. 还有一个原因在于,看acm上的摘要,都只显示了两行,再看多点 ...
- 利用python获取nginx服务的ip以及流量统计信息
#!/usr/bin/python #coding=utf8 log_file = "/usr/local/nginx/logs/access.log" with open(log ...
- 利用Python获取cookie的方法,相比java代码简便不少
1.通过urllib库,是python的标准库,不需要另外引入,直接看代码,注意代码的缩进: # coding=UTF-8import cookielibimport urllib2 class Ry ...
- 利用python 获取 windows 组策略
工作中有时候会有这种需求: 1. 自动配置组策略的安全基线,这个东西不用你自己写了,微软有这个工具,Microsoft Security Compliance Manager,你可以在下面的地址去下载 ...
- Python:爬虫之利用Python获取指定网址上的所有图片—Jaosn niu
# coding=gbk import urllib.request import re import os import urllib def getHtml(url): #指定网址获取函数 pag ...
- 利用Python获取文件类型
这里选择使用使用filetype获取文件的类型. 使用filetype之前,先用pip安装filetype. #!/usr/bin/python3 import filetype import arg ...
- python获取当前运行程序的名字
import os filename = os.path.abspath(__file__) print filename 打印结果: E:\bluedon\test.py
随机推荐
- NSDateFormatter中时间格式串的含义
a: AM/PM (上午/下午) A: 0~86399999 (一天的第A微秒) c/cc: 1~7 (一周的第一天, 周天为1) ccc: Sun/Mon/Tue/Wed/Thu/Fri/Sat ( ...
- PeopleSoft Related Language Records
As we all know, PeopleSoft is capable of maintaining application data in multiple languages within t ...
- css3 2d
CSS3 2D 转换 通过 CSS3 转换,我们能够对元素进行移动.缩放.转动.拉长或拉伸. 以下是 2D 转换 1 translate()通过 translate() 方法,元素从其当前位置移动 ...
- C# 测试程序运行时间和cpu使用时间
方法一 Stopwatch类测试程序运行时间和cpu使用时间 添加命名空间using System.Diagnostics;使用实例如下 private Stopwatch sw = new Stop ...
- Entity Framework with NOLOCK
在SqlServer中,频繁在同一个数据库表同时进行读写的时候,会存在锁的问题,也就是在前一个insert.update.delete事务操作完毕之前,你不能进行读取,必须要等到操作完毕,你才能进行s ...
- "/Date(1405056837780)/" 时间转换
//往往json传过来的时间都是"/Date(1405056837780)/" //转换需要的方法 String.prototype.ToString = function (fo ...
- 兼容ie7的导航下拉菜单
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- C++读入两个参数
题目内容:编写程序计算两个整数的差. 输入描述:输入数据含有不超过50个整数对,每个整数队及每对整数的运算结果都不会超过231或-231. 输出描述:对于每次读入的一对整数,输出前者减去后者的差.每个 ...
- Oracle中建表空间以及用户
第一步:创建临时表空间 --创建临时表空间-- CREATE TEMPORARY TABLESPACE JSYCCS_TEMP ---'JSYCCS_TEMP'临时表空间名 TEMPFILE 'E ...
- Storm入门学习随记
推荐慕课网视频:http://www.imooc.com/video/10055 ====Storm的起源. Storm是开源的.分布式.流式计算系统 什么是分布式呢?就是将一个任务拆解给多个计算机去 ...