C++基本概念之动态联编与静态联编

一个简单的获取数独题目的python脚本

皮贝贝 posted @ 2010年11月15日 15:47 in 岁月舍利 with tags python sudoku , 5151 阅读

       现在很多网站都是在线题库的形式提供, 可以利用网页交互来获取相应的题目。简化了本地程序生成题目策略。比如 http://www.suduko.us/j/smallcn.php 这个网站提供了一个比较全的题目, 有难度分级,共 50000 个题目, 分为5个级别(1~5),每个级别为连续的10000个题目。先给个这个网站的数独玩的界面:

>

 

       例如, 如果要获取难度级别为2的一个题目:

http://www.suduko.us/j/smallcn.php?nd=2

       获取题号为 38888 的题目:

http://www.suduko.us/j/smallcn.php?xh=38888

       获得网页内容后, 可以通过正则式子来获取获得的题目信息, 返回的信息比较全:题目,答案,级别,题号。 这是获取 38888 得到的一段网页内容:

    		var tmda;
    		tmda='010000820000090000020070030034008000000002000005000009000000080000000000709050000913645827478293651526871934234918576197562348865437219651729483342186795789354162210001';
        document.getElementById('tm').value  =  tmda.substring(0,81); 
        document.getElementById('da').value  =  tmda.substring(81,162); 
        document.getElementById('nd').value  =  tmda.substring(162,163); 
        document.getElementById('tmxh').value = tmda.substring(163,170); 

       搜索 "tmda" 字符串只出现在这里。 利用 re.compile ('tmda=\'(.*?)\';') 得到这一串。

def getTmByXh(xh):
    url = "http://www.suduko.us/j/smallcn.php?xh=" + str(xh)

   # get web
    webdata = urlopen (url).read()

    # get 
    sudoku_subject = re.compile ('tmda=\'(.*?)\';')
    m = sudoku_subject.findall (webdata)
    if m:
        print m[0]
    else:
        print 'not find tm by xh: ', xh

 

  • 无匹配

登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter