This commit is contained in:
caoqianming 2020-07-24 19:10:19 +08:00
parent 1a1e7671c6
commit c5be9fdea2
3 changed files with 64 additions and 52 deletions

View File

@ -2,7 +2,7 @@ import requests
from urllib import parse
from lxml import etree
headers = {
'Host': 'cx.saws.org.cn',
'Host': 'cx.mem.gov.cn',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:69.0) Gecko/20100101 Firefox/69.0',
'Accept': 'text/plain, */*; q=0.01',
'Accept-Language': 'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2',
@ -16,8 +16,9 @@ headers = {
def getTzzs(certnum,stu_name):#特种证书(身份证号,姓名,均是字符)
certtype_code='720'
stu_name=parse.quote(parse.quote(stu_name))
sessionId = eval(requests.post('http://cx.saws.org.cn/cms/html/certQuery/certQuery.do?method=getServerTime',headers=headers).text)['time']
url = "http://cx.saws.org.cn/cms/html/certQuery/certQuery.do?method=getCertQueryResult&ref=ch&certtype_code="+certtype_code+"&certnum="+certnum+"&stu_name="+stu_name+'&passcode=1234'+'&sessionId='+sessionId
sessionId = eval(requests.post('http://cx.mem.gov.cn//cms/html/certQuery/certQuery.do?method=getServerTime',headers=headers).text)['time']
print(sessionId)
url = "http://cx.mem.gov.cn/cms/html/certQuery/certQuery.do?method=getCertQueryResult&ref=ch&certtype_code="+certtype_code+"&certnum="+certnum+"&stu_name="+stu_name+'&passcode=1234'+'&sessionId='+sessionId
data = requests.get(url,headers=headers).text
tree = etree.HTML(data)
e1 = tree.xpath("//th[text()='姓名']/following-sibling::td[1]/text()")
@ -38,8 +39,8 @@ def getTzzs(certnum,stu_name):#特种证书(身份证号,姓名,均是字符)
def getAqzs(certnum,stu_name):#安全证书(身份证号,姓名,均是字符)
certtype_code='720'
stu_name=parse.quote(parse.quote(stu_name))
sessionId = eval(requests.post('http://cx.saws.org.cn/cms/html/certQuery/certQuery.do?method=getServerTime',headers=headers).text)['time']
url = "http://cx.saws.org.cn/cms/html/certQuery/certQuery.do?method=getCertQueryResult2&ref=ch&certtype_code="+certtype_code+"&certnum="+certnum+"&stu_name="+stu_name+'&passcode=1234'+'&sessionId='+sessionId
sessionId = eval(requests.post('http://cx.mem.gov.cn/cms/html/certQuery/certQuery.do?method=getServerTime',headers=headers).text)['time']
url = "http://cx.mem.gov.cn/cms/html/certQuery/certQuery.do?method=getCertQueryResult2&ref=ch&certtype_code="+certtype_code+"&certnum="+certnum+"&stu_name="+stu_name+'&passcode=1234'+'&sessionId='+sessionId
data = requests.get(url,headers=headers).text
tree = etree.HTML(data)
e1 = tree.xpath("//th[text()='姓名']/following-sibling::td[1]/text()")
@ -55,7 +56,6 @@ def getAqzs(certnum,stu_name):#安全证书(身份证号,姓名,均是字符)
x5=[]
for i in e5:
x5.append(i.xpath("string(.)"))
print(e6)
for i in range(len(e1)):
cdata.append({'姓名':e1[i],'性别':e2[i],'资格类型':e3[i],'单位类型':e4[i],'发证机关':x5[i],'应复审日期':e7[i].strip(),'有效期开始时间':e8[i].strip(),'有效期结束时间':e9[i].strip(),'初领日期':e6[i].strip(),'url':url})

View File

@ -12,6 +12,7 @@ from sklearn import linear_model
from django.db.models import Sum
from django.conf import settings
from .safespider import getTzzs, getAqzs
import time
dirname = settings.BASE_DIR +'/safesite/'
def getcs(companyid):#获取公司相关参数设置
@ -366,30 +367,30 @@ def checktask():
def updateTzzs():
for x in Socertificate.objects.all():
data = getTzzs(x.cardnum,x.realname)
data1 = []
time.sleep(10)
if data:
for i in data:
if i['操作项目'] not in data1:
updated_values={
'realname':i['姓名'],
'gender':i[''],
'zylb':i['作业类别'],
'czxm':i['操作项目'],
'fzjg':i['发证机关'],
'ccfzrq':i['初次发证日期'] if i['初次发证日期'] else None,
'yfsrq':i['应复审日期'] if i['应复审日期'] else None,
'yxqkssj':i['有效期开始时间'] if i['有效期开始时间'] else None,
'yxqjssj':i['有效期结束时间'] if i['有效期结束时间'] else None,
'sjfssj':i['实际复审时间'] if i['实际复审时间'] else None,
}
try:
updated_values['zszt'] = guoqi(i['应复审日期'])
except:
pass
obj, created = Socertificate.objects.update_or_create(
cardnum=x.cardnum, czxm=i['操作项目'], defaults=updated_values)
data1.append(i['操作项目'])
else:
updated_values={
'realname':i['姓名'],
'gender':i['性别'],
'zylb':i['作业类'],
'czxm':i['操作项目'],
'fzjg':i['发证机关'],
'ccfzrq':i['初次发证日期'] if i['初次发证日期'] else None,
'yfsrq':i['应复审日期'] if i['应复审日期'] else None,
'yxqkssj':i['有效期开始时间'] if i['有效期开始时间'] else None,
'yxqjssj':i['有效期结束时间'] if i['有效期结束时间'] else None,
'sjfssj':i['实际复审时间'] if i['实际复审时间'] else None,
'user':x.user,
'usecomp':x.usecomp
}
try:
updated_values['zszt'] = guoqi(i['应复审日期'])
except:
pass
obj, created = Socertificate.objects.update_or_create(
cardnum=x.cardnum, czxm=i['操作项目'], defaults=updated_values)
try:
obj = Socertificate.objects.get(cardnum=x.cardnum, czxm=i['操作项目'])
if obj.yxqjssj.strftime('%Y-%m-%d')<i['有效期结束时间']:
obj.yfsrq = i['应复审日期'] if i['应复审日期'] else None
@ -402,6 +403,10 @@ def updateTzzs():
except:
pass
obj.save()
except:
obj = Socertificate(**updated_values)
obj.save()
def guoqi(x):
now = datetime.datetime.now()
now1 = datetime.datetime.now() + datetime.timedelta(days=180)
@ -416,30 +421,29 @@ def guoqi(x):
def updateAqzs():
for x in Safecert.objects.all():
data = getAqzs(x.cardnum,x.realname)
data1 = []
time.sleep(10)
if data:
for i in data:
if i['资格类型'] not in data1:
updated_values={
'realname':i['姓名'],
'gender':i['性别'],
'zglx':i['资格类型'],
'dwlx':i['单位类型'],
'fzjg':i['发证机关'],
'ccfzrq':i['初领日期'] if i['初领日期'] else None,
'yfsrq':i['应复审日期'] if i['应复审日期'] else None,
'yxqkssj':i['有效期开始时间'] if i['有效期开始时间'] else None,
'yxqjssj':i['有效期结束时间'] if i['有效期结束时间'] else None,
}
try:
updated_values['zszt'] = guoqi(i['有效期结束时间'])
except:
pass
obj, created = Safecert.objects.update_or_create(
cardnum=x.cardnum, zglx=i['资格类型'], dwlx=i['单位类型'], defaults=updated_values)
data1.append(i['资格类型'])
else:
obj = Safecert.objects.get(cardnum=x.cardnum, czxm=i['资格类型'])
updated_values={
'realname':i['姓名'],
'gender':i['性别'],
'zglx':i['资格类型'],
'dwlx':i['单位类型'],
'fzjg':i['发证机关'],
'yfsrq':i['应复审日期'] if i['应复审日期'] else None,
'yxqkssj':i['有效期开始时间'] if i['有效期开始时间'] else None,
'yxqjssj':i['有效期结束时间'] if i['有效期结束时间'] else None,
'user':x.user,
'usecomp':x.usecomp
}
try:
updated_values['zszt'] = guoqi(i['有效期结束时间'])
except:
pass
obj, created = Safecert.objects.update_or_create(
cardnum=x.cardnum, zglx=i['资格类型'], dwlx=i['单位类型'], defaults=updated_values)
try:
obj = Safecert.objects.get(cardnum=x.cardnum, zglx=i['资格类型'], dwlx=i['单位类型'])
if obj.yxqjssj.strftime('%Y-%m-%d')<i['有效期结束时间']:
obj.yfsrq = i['应复审日期'] if i['应复审日期'] else None
obj.yxqkssj = i['有效期结束时间'] if i['有效期结束时间'] else None
@ -449,4 +453,8 @@ def updateAqzs():
obj.zszt = zsst
except:
pass
obj.save()
obj.save()
except:
obj = Safecert(**updated_values)
obj.save()

View File

@ -4850,7 +4850,7 @@ def apitool(req):
for i in Partment.objects.filter(iscompany=1):
obj,created = Map.objects.get_or_create(usecomp=i,defaults={'name':'默认地图','pic':'/static/safesite/mystatic/images/snc.jpg','usecomp':i})
if created:
print(i.partname+'建立默认地图')
print(i.partname + '建立默认地图')
return JsonResponse({"code":1})
elif a == 'panjuan':
test = ExamTest.objects.get(id=req.GET.get('test'))
@ -4916,6 +4916,10 @@ def apitool(req):
num = num + 1
print(str(num) + obj.examtest.name + obj.user.name + '得分' + str(score))
return JsonResponse({"code":1})
elif a == 'correct_aqzs':
from .tasks import updateAqzs
updateAqzs()
return JsonResponse({"code":1})