From c5be9fdea2553630fcae2a06c767c08e51acda73 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Fri, 24 Jul 2020 19:10:19 +0800 Subject: [PATCH] updatezs --- safesite/safespider.py | 12 +++--- safesite/tasks.py | 98 +++++++++++++++++++++++------------------- safesite/views.py | 6 ++- 3 files changed, 64 insertions(+), 52 deletions(-) diff --git a/safesite/safespider.py b/safesite/safespider.py index 5c7bc66f..a4e49299 100644 --- a/safesite/safespider.py +++ b/safesite/safespider.py @@ -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}) diff --git a/safesite/tasks.py b/safesite/tasks.py index e1137bd3..6c191a43 100644 --- a/safesite/tasks.py +++ b/safesite/tasks.py @@ -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')