一款初代题库爬虫
模块 | 作用 |
---|---|
fuck_sosw | 爬虫主程序 |
SelectFile | 查重模块 |
- 先输入考试题库基地址如:
http://210.43.5.241/wlkcroot/html5root
- 指定程序循环访问地址(刷题多少次),次数越多输出的考题越多
- 指定保存文件的文件名(含扩展名)
- 完成
注意
postdata = {
'ctl1':'  0  ',
'kctl1':'  0  ',
'ctl2':'  0  ',
'kctl2':'  0  ',
'ctl3':'  0  ',
'kctl3':'  0  ',
'ctl4': '  0  ',
'kctl4': '  5  ',
'ctl5': '  0  ',
'kctl5': '  0  ',
'ctl6': '  0  ',
'kctl6': '  0  ',
'ctl7': '  0  ',
'kctl7': '  0  ',
'ctl8': '  0  ',
'kctl8': '  0  ',
'ctl9': '  0  ',
'kctl9': '  0  ',
'ctl10': '  0  ',
'kctl10': '  0  ',
'ctl11': '  0  ',
'kctl11': '  0  ',
'ctl12': '  0  ',
'kctl12': '  0  ',
'ctl13': '  0  ',
'kctl13': '  0  ',
'ctl14': '  0  ',
'kctl14': '  0  ',
'ctl15': '  0  ',
'kctl15': '  0  ',
'SYSJ': '5',
'zjzc': '11',
'ztl': '5',
'zjzs': '15'
}
此处请求报文为请求指定章节的题目
- ctl1-ctln(n为有多少章节):选择题请求参数,其中第三列的数字表示该章节抽多少道题,0表示不会抽到该章节的题目。例如:
'ctl1':'  7  ',
表示第一章选择题抽7题。(单次请求选择题的数量不能超过9) - kctl1-kctln(n为有多少章节):填空题请求参数,其中第三列的数字表示该章节抽多少道题,0表示不会抽到该章节的题目。例如:
'kctl4': '  5  ',
表示第四章填空题抽5题。(单次请求填空题的数量不能超过5) - SYSJ:测试时间,没什么用...固定5就好
- zjzc:同上,没什么用,固定值
- ztl:本次刷题的题量,需要与上面指定的刷题数量相同
- zjzs:该科目的总章节数,根据情况修改
1.isLogin(baseurl):
- 作用:检查用户是否登陆
- 参数:
baseurl
题库基地址 - 返回值:True or False
2.login(secret, account,baseurl):
- 作用:用户登陆,并设置session
- 参数:
secret
密码,account
账号,baseurl
基地址 - 返回值:无
3.doTest(filename,baseurl):
- 作用:请求题库,刷题,并设置试题session
- 参数:
filename
要保存的文件名,baseurl
基地址 - 返回值:无
4.getAnswer(filename,baseurl):
- 作用:根据session请求试题答案
- 参数:
filename
要保存的文件名,baseurl
基地址 - 返回值:无
5.parseTest(text,filename):
- 作用:格式化试题及答案
- 参数:
text
未格式化的试题字符串,filename
要保存的文件名 - 返回值:无
6.appendquest(cont,name):
- 作用:调用
SelectFile
模块,在已有的试题中搜索当前试题是否存在,若存在则加入试题 - 参数:
cont
要搜索的试题内容,name
已有试题的文件名 - 返回值:
str
返回未重复的试题
- 某些情况下出现抓取不到试题选项的问题,初步判断问题在
parseTest(text,filename)
模块 - 查重算法效率太低,存在当试题相似度较大时会判定为重复试题的BUG
- 不能抓取试题中图片,考虑文件输出为word文档