idf实验室--简单编程字符统计
idf实验室--简单编程字符统计,有需要的朋友可以参考下。
第一眼看这道题很简单,不就是字符统计么,可是题目要求2s内回答,而且每次打开的页面需要统计的字符串内容都会变,这就蛋疼了,于是乎上网学习下如何提交post表单,然后用python写个程序自动提交就ok了 ( 题目地址 )
代码如下:
# -*- coding: utf-8 -*- import urllib2 import urllib import cookielib import string import re#需要提交post的url TARGET_URL = "http://ctf.idf.cn/game/pro/37/"# 设置一个cookie处理器 req = urllib2.Request(TARGET_URL) cj = cookielib.CookieJar() opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj)) res = opener.open(req)# 通过正则匹配抓到需要统计的字符串 content = res.read() check_text = re.findall(r'<hr />(.*)<hr />',content,re.S)[0]# 简单的统计 char_count = [0,0,0,0,0] for txt in check_text:if txt == 'w':char_count[0] += 1elif txt == 'o':char_count[1] += 1elif txt == 'l':char_count[2] += 1elif txt == 'd':char_count[3] += 1elif txt == 'y':char_count[4] += 1#将数字转换成字符串 result = "" for nIndex in char_count:result += str(nIndex) print "Result = ", result# 接下来就是提交了 value = {'anwser': result} data = urllib.urlencode(value) request = urllib2.Request(TARGET_URL,data) response = opener.open(request) html = response.read() print html
需要注意的地方:你需要保存下来第一次正则匹配时打开页面cookie,构造一个opener,在第二次提交时使用之前的cookie即可。。。否则会提示超时
下面是一个大牛给我的代码,用到了第三方库mechanize:
# coding=utf-8import re import urllib2 import mechanizeTARGET_URL = "http://ctf.idf.cn/game/pro/37/" USER_AGENT = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.115 Safari/537.36 QQBrowser/3.5.3420.400"# Get target text use regular expression. def get_text(content):return re.findall(r'<hr />(.*)<hr />', content,re.S)[0]def submit():char_count = [0, 0, 0, 0, 0]br_controller = mechanize.Browser()br_controller.set_handle_equiv(True)br_controller.set_handle_redirect(True)br_controller.set_handle_referer(True)br_controller.set_handle_robots(False)br_controller.addheaders = [("User-Agent", USER_AGENT)]br_controller.open(TARGET_URL)# Get web page cotentpage_content = br_controller.response().read()# Get target textcheck_text = get_text(page_content)# Calculatefor txt in check_text:if txt == 'w':char_count[0] += 1elif txt == 'o':char_count[1] += 1elif txt == 'l':char_count[2] += 1elif txt == 'd':char_count[3] += 1elif txt == 'y':char_count[4] += 1# Change value in char_count to string.result = ""for nIndex in char_count:result += str(nIndex)print "Result = ", result# Post form.br_controller.select_form(nr=0)br_controller.form['anwser'] = resultbr_controller.submit()print br_controller.response().read()if __name__ == '__main__':submit()
idf实验室--简单编程字符统计相关推荐
- c语言行计数程序,C语言非常简单的字符统计程序50行
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 该程序用于实现linux系统中wc命令的最简单模式 wc 命令用于统计文件中字符信息. [xx@localhost 1.5]$ wc 01.c 02.c ...
- 50行以上c语言程序代码,C语言非常简单的字符统计程序50行
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 该程序用于实现linux系统中wc命令的最简单模式 wc 命令用于统计文件中字符信息. [xx@localhost 1.5]$ wc 01.c 02.c ...
- IDF 实验室 初探乾坤
简单编程-字符统计 还可以模拟网页访问,有空试一下. ----------------------------------- 速度要快,用AutoHotKey,语法不太适应 ^d:: StringCa ...
- c语言中计算一个字母的序数,C语言编程 输入一串字符统计英文字母的个数
C语言编程:输入一行字符,至少50个,统计其中英文字母,数字,其他字母个数 楼上那个不能统计空格个数,我这个可以#include#includeintmain(){intcnt_c=0,cnt_n=0 ...
- 编程简单的计算机,计算机简单编程示例.doc
<计算机简单编程示例.doc>由会员分享,提供在线免费全文阅读可下载,此文档格式为doc,更多相关<计算机简单编程示例.doc>文档请在天天文库搜索. 1.1从键盘输入三个数 ...
- c语言 简单编程题,c语言简单编程练习题.doc
c语言简单编程练习题 精品文档 2016全新精品资料-全新公文范文-全程指导写作 –独家原创 PAGE1 / NUMPAGES1 c语言简单编程练习题 然后输出相应的字符. #include #inc ...
- ubuntu 运行c++_06_Linux下VSCode简单编程(远程开发WSL_Ubuntu_18.04) | C语言入门
06_Linux下VSCode简单编程(远程开发WSL_Ubuntu_18.04) 本系列主题 Linux下C语言彩色控制台编程实践_基于gcc,gdb,VSCode,git和WSL_Ubuntu_1 ...
- 李洋疯狂C语言之编程实现统计某年某月份的天数
今天的题目:编程实现统计某年某月的天数 例如: 输入:2017.7 输出:31天 先附上我自己想的方法,由于几个功能放一起太繁琐,于是我想把他们分为三个函数,分别来实现这个功能: #include & ...
- 今天用Map集合写了一个字符串字符统计的程序,看集合看的头痛,就看了一下GUI,于是就随便记点。
一.使用Map集合写的字符串中字符统计功能函数. package Map;import java.util.HashMap; import java.util.Iterator; import jav ...
最新文章
- 阿里、京东、美团、滴滴的 Dubbo / JVM / Spring 面试题及答案(2)
- 卡尔曼滤波(kalman)相关理论以及与HMM、最小二乘法关系 转
- 关于python语言的浮点数类型_Python 浮点数数据类型详解(float)[学习 Python 必备基础知识][看此一篇就够了]...
- Oracle原理:表分区
- C#中字符串的内存分配与驻留池
- 职称考试取消英语和计算机,强烈建议取消所谓的英语职称和计算机考试
- HTML+CSS+JS实现 贪吃蛇游戏源码
- 在网络虚拟化之前部署NFV将使运营商网络面临风险
- 照片上的人出来了!云从3D人体重建登顶三项榜单,一张照片就能生成3D形象
- mysql gtid 主键冲突_MySQL Last_SQL_Errno: 1062----经典错误,主键冲突
- STC学习:光照报警器
- 永中office属于职称计算机吗,职称计算机考核永中OFFICE辅导之电子表格.doc
- 论文查重前应删掉哪些内容?
- java 调用关机命令_java调用关机命令
- 青果教务系统API(Java版)
- 车厢调度(信息学奥赛一本通 - T1357)
- WPF 开机一键启动程序V1.0【原创】
- free, iostat, Linux, top, uptime, vmstat
- javascript 汉字生成拼音
- 让微信二维码扫描你的APK
热门文章
- 淮安中专学计算机哪个学校好,2021淮安初中十强排名 哪些初中比较好
- java换成中文_如果我们的编程替换成中文会变成怎样?
- 简述java规范要注意哪些问题_JAVA学习:JAVA基础面试题(经典)
- inputdstream mysql_【sparkStreaming】将DStream保存在MySQL
- 【渝粤教育】国家开放大学2019年春季 1171科学与技术 参考试题
- 【渝粤教育】国家开放大学2018年秋季 2726T畜禽生产概论 参考试题
- 【渝粤教育】国家开放大学2018年秋季 2604T城市轨道交通行车组织 参考试题
- 【渝粤教育】国家开放大学2018年秋季 0734-22T出纳实务 参考试题
- 【渝粤题库】国家开放大学2021春3979会计学概论题目
- 【渝粤题库】国家开放大学2021春2617生产与运作管理题目