爬題庫腳本
❶ 刷題腳本的原理
自動原理。刷題腳本的自動原理。腳本實現原理:主要通過瀏覽器+油猴腳本管理器的形式來實現。油猴腳本必要的前端知識:HTML/CSS/JS等。
❷ 學習通刷題腳本怎麼添加題庫
學習通刷題腳本怎麼添加題庫,這個其實是很簡單的,你只需要教你想要添加的那道題,點擊左下角的三個點,然後就能添加到題庫裡面的。
❸ 搜題腳本怎麼架構
把整個腳本按照一定的規則和順序分成若干模塊,每個模塊對應整個項目的一個面,通過模塊化的方式來降低整個腳本的復雜度,這些模塊按一定規則集成後就形成了一個框架。
腳本是一種描述性語言,依據一定格式可執行化文件。腳本是一種去重復性、多樣性、簡潔性、規范性、共同性的工具。簡單說腳本能夠將復雜、重復的工作進行簡單化,有序執行的一段固定程序或命令。數字是腳本的基礎,腳本是語言的基礎,語言是框架的基礎,框架是軟體的基礎。這些東西就像套娃一樣永遠也不知道套了幾層,01是腳本的基礎,腳本是任何一種語言的基礎。
❹ 油猴腳本怎麼導入自己的題庫
油猴腳本導入自己題庫步驟:
1、滑鼠左鍵點擊瀏覽器右上角油猴插件,進入菜單欄中的管理面板。
2、點擊實用工具,進入實用工具頁面。
3、選擇文件欄的導入文件。將已經得到的腳本文件,是壓縮包,則先解壓,導入,有多個文件,選擇導入js文件,完成本地題庫導入。
❺ 清覽題庫可以用腳本刷嗎
可以的,用腳本刷課不會影響考試。用腳本刷課是沒有影響的,但是還是要把握有度,像有些主觀題比較多,那麼在腳本里是沒有主觀題的答案的,或者是錯誤的答案。那麼就會對成績造成影響,可能會不及格,如果老師發布的卷子里的題都是客觀題,那麼就可以用腳本刷,並且可以刷到滿分,或者是比較優秀的分數。
❻ 已經有題庫怎麼利用js自動答題
讀取題庫 將電腦題庫txt文檔傳到手機上,一個方便的做法是 將爬取的文檔直接放在本腳本文件的文件夾內,然後按照保存腳本文件的方法保存即可 按ctrl+shift+p,點擊 save on device,即可保存到手機,會存為js文件 地址為和腳本所在的地址一樣,使用log(files.cwd())可列印查看 files.cwd():返回腳本的"當前工作文件夾路徑"。 再從文件中讀取,返回的是字元串,而不是JSON數據。
❼ 爬取某筆公考app公基題庫的操作
最近在准備上岸,備考中需做大量的練習,手機APP讓練習無處不在,但有個缺點,就是每次只能練習10-20道題目,不能用題海戰術,海量做題。能不能把網站的題庫及解析都弄下來,在本地電腦上做題呢?以下是我的思路:1、分析並爬取手機軟體的題庫;2、調整好格式存入xls文件中;3、導入PC版可自定義的考試系統中(如教之初考試系統免費版);4、自行設置考試模式,海量練習。
倒騰了兩天,終於搞定,後續再更新文章!
涉及到幾個點。
1、關於手機網路數據的分析,我是用Fiddler 4進行的分析。
2、關於excel表格的操控,之前想用xlwings模塊,後因沒裝office,用的是wps2013政府閹割版,無法操控,後改用xlrd、xlutils、shutil、os模塊自己寫了一個excel操縱類對象,發現還是有問題,後卸載閹割版wps,換了wps2016最新版的,就可以操作了。後來也沒換xlwings模塊了,將就著用自寫模塊。 大坑:xlrd模塊好像不支持中文路徑,全部換用英文路徑,最後再把文件夾及文件名轉換成中文的。
3、題庫分類保存。
1、Fiddler抓包手機APP的網路請求
Fiddler是一款非常流行並且實用的http抓包工具,它的原理是在本機開啟了一個http的代理伺服器,然後它會轉發所有的http請求和響應,不僅如此,它還可以支持請求重放等一些高級功能。顯然它是可以支持對手機應用進行http抓包的。
設置在同一區域網下電腦端Fiddler抓取手機APP應用網路請求的步驟:
(1)電腦端啟動Fiddler,打開菜單欄中的 Tools > Fiddler Options,打開「Fiddler Options」對話框。
(2)在Fiddler Options」對話框切換到「Connections」選項卡,然後勾選「Allow romote computers to connect」後面的復選框,然後點擊「OK」按鈕。( 小技巧: HTTPS標簽中可以設置下拉框為...from remote clients only , 貌似 就只接收遠程端的網路請求了)
(3)在電腦端的命令行輸入:ipconfig,找到本機的ip地址。(我的區域網IP:192.168.1.10)
(4)在手機端,打開android設備的「設置」->「WLAN」,找到你要連接的網路,在上面長按,然後選擇「修改網路」,彈出網路設置對話框,然後勾選「顯示高級選項」。 (其實蘋果手機也是類似的)
(5)在「代理」後面的輸入框選擇「手動」,在「代理伺服器主機名」後面的輸入框輸入電腦的ip地址,在「代理伺服器埠」後面的輸入框輸入8888,然後點擊「保存」按鈕。
(6)然後啟動android設備中的APP應用,在fiddler中可以看到完整的請求和響應數據。
2、手機APP應用網路數據分析
手機上打開某筆公考軟體後,從Fiddler左側欄中可以看到大量的請求鏈接。
點擊上圖黃色區域的鏈接,可看到右側詳細數據。
在右側詳細數據欄中,我們可以看到請求的網址:POST http:// xxx bi.com/android/sydw/exercises?&platform=android22&version=6.4.3&vendor=Tencent&app=gwy&deviceId=F4J/K8kXx6+C24yqFuzAiA==&av=8&kav=3 HTTP/1.1
post請求的參數keypointId=621638&type=3&limit=15
返回的數據為Json格式,從返回數據中我們可以找出questionIds對應的題目編號,如2084744.
點擊上上圖(Fiddler網路請求響應)中紅色框中的鏈接地址,我們可以看到右側詳細數據欄的數據
從上圖中我們可以找到ID號為2084744的題目的題干、選項、題型、答案等有用數據。
分析基本結束,此手機APP應用的模式基本是這樣:先請求15道題的ids,再根據meiti的ids請求題目相關數據。後續測試發現,請求questionIds時,修改參數,能一次最多請求到100道題的ids。
另外,從左側請求鏈接可以找出對應的章節分類請求鏈接,根據分類號再查找對應的questionids,就可以把所有的題目抓取出來。
3、xls操控
將就著基於xlrd模塊編寫自用模塊。
源碼在此,可能格式錯亂。需整理。
'''python
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on 2018-05-14 12:48:07
@author: wangzheng
Sys_Env : Windows_AMD64 Python3.5.2
Wechat : hrcl2015(微信)
Filename: MyXls.py
Description : xls文件操控類MyXls
注意:文件路徑中不能有中文名,否則出錯
"""
from xlrd import open_workbook
from xlutils. import
import os,shutil
class MyXls:
def __init__(self,fpath=None,modelfpath=None,sheetindex=None,protectrow=None,overwrite=True):
self.openxlspath=''#已打開的xls文件
self.sheetindex=None#當前工作表索引
self.rb=None#
self.wb=None#workbook工作簿
self.ws=None#worksheet工作表
self.headrow=0#開頭保護行數
if (fpath is not None) and (modelfpath is not None):
self.open__xls(modelfpath,fpath,True)
elif fpath is not None:self.open_xls(fpath)
if sheetindex is not None:self.get_sheet(sheetindex)
if protectrow is not None:self.headrow=protectrow
def open_xls(self,fpath):
path=fpath
try:
rb = open_workbook(path)
except Exception as err:
print("File not exists: "+str(err))
return False
#通過sheet_by_index()獲取的sheet沒有write()方法
#rs = rb.sheet_by_index(0)
#rs = rb.sheet_by_name('sheet 1')
self.wb = (rb)
self.openxlspath=path
return True
def get_sheet(self,sheet_index=0):
sheets=sheet_index
#通過get_sheet()獲取的sheet有write()方法
self.ws = self.wb.get_sheet(sheets)
self.sheetindex=sheets
def write_xls(self,row_index,column_index,data_str):
row,col,data=row_index,column_index,data_str
#寫入數據
self.ws.write(row,col,data)#write(行,列,內容),索引從0開始
def write_xls_bycolname(self,row_index,column_name,data_str):
column_index=self.colname_to_num(column_name)
row,col,data=row_index,column_index,data_str
#寫入數據
self.ws.write(row,col,data)#write(行,列,內容),索引從0開始
def write_xls_bysheet(self,sheetindex,row_index,column_name,data_str):
'''在指定工作表的指定行列表格中寫入數據'''
if self.sheetindex != sheetindex :self.get_sheet(sheetindex)
self.write_xls_bycolname(row_index,column_name,data_str)
def save_xls(self,fpath=None):
if fpath is None:
self.wb.save(self.openxlspath)
print('saved '+self.openxlspath)
else:
path=fpath
self.wb.save(path)#保存xls文件
print('saved '+path)
return True
def open__xls(self,model_fpath,new_fpath,overwrite=True):
'''參照模板文件,復制並打開xls文件'''
if os.path.exists(model_fpath) :
new_fpath=self.auto_mkdir(new_fpath)
if (not os.path.exists(new_fpath)) or overwrite:
#print('[%s]to[%s]'%(model_fpath,new_fpath))
shutil.(model_fpath,new_fpath)
return self.open_xls(new_fpath)
else:print('新文件已存在,請修改新文件名!');return False
else:print('模板文件不存在,不能復制到新文件!');return False
def num_to_colname(self,col_index,start=0):
#列索引轉列名,基數start從0開始,0-->A
if type(col_index) != int:
return col_index
if start==0:
x=col_index+1
elif start==1:
x=col_index
s=''
flag=False#借位標志
while x>26:
y=x%26#取餘0-25
if y==0:y=26;flag=True;
d=chr(y+64)#低位
s=d+s
x=x//26#整除取商
if flag:x=x-1;flag=False;#如果借位,商要先-1
g=chr(x+64)#高位
s=g+s
return s
def colname_to_num(self,colname,start=0):
#列名轉列索引 A-->0,B->1,開始基數start為0
if type(colname) is not str:
return colname
colname=colname.upper()#轉成大寫
col = 0
power = 1
#print(len(colname))#位數
for i in range(len(colname) - 1, -1, -1):#range(start=0,stop,step=1)
ch = colname[i] #倒序取字母
#print(ch)#所在位上的字母
col += (ord(ch) - ord('A') + 1 ) * power
power *= 26
#print(col-1)
if start==0:return col-1
if start==1:return col
def auto_mkdir(self,fpath):
'''自動補全目錄,目錄不存在就創建目錄'''
#fpath='D:\\MyPython\\粉筆公考題庫提取\\678\\980\\test.txt'
fpath=fpath.replace('\\','/')
if not os.path.exists(fpath):
plst=fpath.split(sep='/')
path=''
if not fpath.endswith('/'):plst=plst[:-1]
for p in plst:
path=path+p+'/'
if not os.path.exists(path):os.mkdir(path)
return fpath
if __name__=='__main__':
model_fpath='D:\\MyPython\\model.xls'
new_fpath='D:\\MyPython\\abc\\123/out.xls'
# myxls=MyXls()
# myxls.open__xls(model_fpath,new_fpath)
# myxls.get_sheet(0)
myxls=MyXls(new_fpath,model_fpath,2,3)
myxls.write_xls_bycolname(6,'K','K列6行數據')
# myxls.save_xls(new_fpath)
myxls.save_xls()
pass
'''
4、文件保存
保存成xls文件,和txt文件,txt文件再轉換成word文檔列印出來。大概有7個大類,100+小類,12737道題。
5、導入題庫軟體
xls文件導入題庫中。
6、大功告成
PS:某筆app更新後,加入了防抓取數據的功能,貌似安卓5.1以上的都不能抓取了。
據資深網友反應,使用安卓模擬器(系統版本4.4)還可以抓到明文數據,有興趣的讀者可以試一試。
❽ 如何用python寫一個從題庫自動匹配的答題腳本
#!/usr/bin/envpythonimportsysstr=Truewhile(str):dig=int(input())ifdig>100:print'pleaseinputmunbetween0~100'elifdig>=90:print'A'elifdig>=80:print'B'elifdig>=70:print'C'elifdig>=60:prin
❾ 雲題庫怎麼爬取答案
利用python進行爬取。
具體步驟如下:1、利用requests庫的get方法來獲取網頁內容。
2、利用BeautifulSoup庫來解析。
3、將解析的網頁答案保存在文件即可。
❿ 要製作一個刷試題庫的按鍵精靈腳本,哪位大神幫忙一下
按鍵精靈腳本,一運行就提示出差,求大神幫忙修改一下... 2009-02-05 按鍵精靈腳本製作 9 2009-08-14 ... 1回答 30 找一個...
