m765555 发表于 2014-4-6 23:15:01

请教一个驾校考试题库试题网页保存问题

本帖最后由 m765555 于 2014-4-6 23:20 编辑

网址是http://www.jszks.com/list/
备注:本人只是想把题库保存起来,然后打印出来学习而已,绝非用于其它恶意目的。因为在线的话,是一次随机的,而且只有十分之一的题,麻烦啊.另外也是想学习一下写这代码提升一下。
我想把所有的题,都用au3自动点击选择答案,如果选择答案错误的话,网页会提示“答错了……”,则继续选择另外的答案,如果答对了,则会提示“答对了……”,如果答对了,则自动写入一个word中(包括答案一并写入,答案写在问题下一行,和原格式一样,感觉难),并空一行,等待写入下个题,
写入word成功后,au3继续点击当前网页中的“下一题”,继续循环上面的操作,对了就写入,错了就重选择,直到题库完成。
本人尝试了一下,思路有点模糊,请各位指点一下……

绿色风 发表于 2014-4-7 08:57:25

你这想发不错,就是不知道做好了会查水表不

lanfengc 发表于 2014-4-7 16:56:55

回复 1# m765555

我只给你方法. 不按你的要求来. 你自己下载测试.


#include <file.au3>
Global $url="http://www.jszks.com/data/question/序号.txt"
Global $questionData
ProgressOn ( "驾校题库获取器", "开始读取数据" , "0%" , 100 , 100 , 16)
For $i=1 To 4951
        $questionData[$i]=BinaryToString(InetRead(StringReplace($url,"序号",$i),1+2),4)
        $questionData[$i]=StringRegExpReplace($questionData[$i],'{"id":\d+,"question":"',"问题:")
        $questionData[$i]=StringReplace($questionData[$i],'","answer":',"答案:")
        $questionData[$i]=StringReplace($questionData[$i],'"image"',"图片")
        $questionData[$i]=StringReplace($questionData[$i],'"type"',"类型")
        $questionData[$i]=StringReplace($questionData[$i],'"item1"','选项1')
        $questionData[$i]=StringReplace($questionData[$i],'"item2"','选项2')
        $questionData[$i]=StringReplace($questionData[$i],'"item3"','选项3')
        $questionData[$i]=StringReplace($questionData[$i],'"item4"','选项4')
        $questionData[$i]=StringReplace($questionData[$i],'"explain":"','扩展阅读:')
        $questionData[$i]=StringRegExpReplace($questionData[$i],'","explainid":\d+}','')
        $progress=Round($i/4951*100,2)
        ProgressSet( $progress, $progress & " %")
Next
$questionData=$i
ProgressSet(100 , "完成", "全部完成")
_FileWriteFromArray(@ScriptDir&"\data.txt",$questionData)
ProgressOff()
MsgBox(0,"提示","全部下载完成,请打开data.txt查看")

m765555 发表于 2014-4-8 21:39:55

今天有空再仔细看了一下,每个题的答案选项数目不一样,感觉根本无法实现目的.哎,多谢lanfengc提供思路哈,有空再研究下

骗子 发表于 2014-4-9 11:06:10

本帖最后由 骗子 于 2014-4-9 11:19 编辑





#include <IEEx.au3>
#include <IE.au3>

$oIE = _IEAttach("http://www.jszks.com/list/", "url")
While 1
        $text = ''
        $d = _IEGetObjById($oIE, '_radio1')
        _IEAction($d, 'click')
        Do
                Sleep(500)
                $result = _IEGetObjById($oIE, 'result')
               
        Until $result.innertext <> ''
        $Ele = _IEQuery($oIE, "DIV", 'class=s1')
        $text &= $Ele.innertext & @CRLF
        If StringInStr($result.innertext, '答对了') Then
                $text &= $result.innertext & '正确答案是 A ' & @CRLF
        Else
                $text &= $result.innertext & @CRLF
        EndIf
        $INPUT = _IEQuery($oIE, "INPUT", 'value=下一题')
        _IEAction($INPUT, 'click')
        FileWrite('tiku.txt', $text & @CRLF)
        _IELoadWait($oIE)
WEnd


页: [1]
查看完整版本: 请教一个驾校考试题库试题网页保存问题