from selenium import webdriver
#导入selenium的webdriver 如果这个看不懂的话请移步selenium教程
from fuzzywuzzy import fuzz
#计算相似度的工具,没听过也没关系,看到了自己查
import re
import random
asls=[]
for i in qs:
if i[1] in asq:
asls.append(asa[asq.index(i[1])])
else:
rls=[fuzz.ratio(i,ii) for ii in asq]
op=asa[rls.index(max(rls))]
asls.append(op)
#asls 里的结果大概就是这个样子['A','C','B'............'B']
asls=[ord(i)-65+e*4 for e,i in enumerate(asls)]
#列表推倒,不会的话自己用for写
#asls 里的结果大概就是这个样子[0,6,12........]
最后把inputs里的相应下标的inputs标签点击一下
for i in asls:
inputs[i].click()
当然,不能做全对吧,那就随机瞎点几个答案吧(错误率根据开始定义的错误率)
for i in range(int(wrong)):
random.choice(inputs).click()
全部解释完,撒花
下面贴全部源码
from selenium import webdriver
from fuzzywuzzy import fuzz
import re
import random
name='15000232'
password='a1008611'
wrong=85
count=148
wrong=count*(100-wrong)*0.01
dr=webdriver.Chrome()
dr.get('http://passport2.chaoxing.com/login?fid=1400&refer=http://i.mooc.chaoxing.com/space/index.shtml')
#open website
dr.find_element_by_class_name("zl_input").send_keys(name)
dr.find_element_by_class_name("zl_input2").send_keys(password)
code=input('Verification code >>>')
dr.find_element_by_class_name("zc_input32").send_keys(code)
dr.find_element_by_class_name("zl_btn_right").click()
#login
dr.switch_to_frame('frame_content')
dr.find_element_by_xpath("/html/body/div/div[2]/div[2]/ul/li[2]/div[2]/h3/a").click()
dr.switch_to_window(dr.window_handles[1])
#switch to frame and click 'SQL SERVER'
hwxpath='/html/body/div[6]/div[1]/div[2]/div[3]/div/div[2]/h3/span[2]/a'
dr.find_element_by_xpath(hwxpath).click()
dr.switch_to_frame(0)
dr.switch_to_frame(0)
dr.switch_to_frame(0)
inputs=[]
for n in dr.find_elements_by_tag_name('input'):
if n.is_displayed():
inputs.append(n)
print(n,'ok')
qs=re.findall('(\d*?)[\s\S]*?【单选题】([\s\S]*?)
',dr.page_source)
file='answers.txt'
with open(file,'r',encoding='utf-8') as f:
ass=f.read()
asq=re.findall('\d+ . (.*?)\n',ass)
asa=re.findall('答案:(.)',ass)
asls=[]
for i in qs:
if i[1] in asq:
asls.append(asa[asq.index(i[1])])
else:
rls=[fuzz.ratio(i,ii) for ii in asq]
op=asa[rls.index(max(rls))]
asls.append(op)
asls=[ord(i)-65+e*4 for e,i in enumerate(asls)]
for i in asls:
inputs[i].click()
for i in range(int(wrong)):
random.choice(inputs).click()
用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具。 tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支 持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。
实用命令实例
默认启动
tcpdump
普通情况下,直
MO= Mobile originate,上行,即用户上发给SP的信息。MT= Mobile Terminate,下行,即SP端下发给用户的信息;
上行:mo提交短信到短信中心下行:mt短信中心向特定的用户转发短信,你的短信是这样的,你所提交的短信,投递的地址是短信中心。短信中心收到你的短信后,存储转发,转发的时候就会根据你填写的接收方号码寻找路由,下发。在彩信领域是一样的道理。下行业务:由SP
import java.util.Arrays;
import java.util.Random;
public class MinKElement {
/**
* 5.最小的K个元素
* I would like to use MaxHeap.
* using QuickSort is also OK
*/
public static void
添加没有默认值:alter table Test add BazaarType char(1)
有默认值的添加列:alter table Test add BazaarType char(1) default(0)
删除没有默认值的列:alter table Test drop COLUMN BazaarType
删除有默认值的列:先删除约束(默认值)alter table Test DRO
Spring Boot 1.2.4已于6.4日发布,repo.spring.io and Maven Central可以下载(推荐使用maven或者gradle构建下载)。
这是一个维护版本,包含了一些修复small number of fixes,建议所有的用户升级。
Spring Boot 1.3的第一个里程碑版本将在几天后发布,包含许多