iis打开网站变成下载域名注册需要多久
本期为了满足用户的需求,特地的做了一款末so狗主动提交url以及提交快照更新软件,在做软件前,首先在python源码中,需要保证代码的运行流畅,然后才可以设计软件,在软件界面上进行任务的提交。
一、主动提交
某so狗的主动提交需要账号密码登录,然后再进行post请求,那么自然而然需要保持cookie一致或者session会话一直,这里用到session会比较方便。
1、请求验证码
验证码的源码是svg标签格式,需要通过对svg转成验证码图片,然后才能进行识别,这里识别用到了第三方打码平台,其实有免费的库可以识别或者其他方法,但是准确率不行,很容易造成so狗平台对ip的长时间的封禁,那么花点小钱用平台识别,准确率是比较高的,而且只需要验证一次就可以了。
1 2 3 4 5 6 7 8 9 10 11 12 | #from reportlab.graphics import renderPM #from svglib.svglib import svg2rlg def code_img(self):resp = self.session.get(self.verify_url)f = StringIO(resp.text)drawing = svg2rlg(f)print(drawing)renderPM.drawToFile(drawing,f'common/1.png',fmt='JPG')img_bytes = renderPM.drawToString(drawing,fmt='JPG')# self.code = self.ocr.classification(img_bytes)self.code = self.chaojiying.PostPic(img_bytes, 1004)['pic_str']print(self.code) |
2、登录获取session
保持登录会话一致,用验证码识别结果进行post请求,返回success就表示成功了。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | def login_sougou(self):while True:self.session.get('https://zhanzhang.sougou.com')form_data = {'code':self.code,'pwd':self.password,'userid':self.username}resp = self.session.post(url=self.login_url,data=form_data,headers=self.headers).json()print(resp)# time.sleep(3)if resp['code'] == 0:breakelse:self.code_img() |
3、url主动提交
再到登录后的页面,进行url主动提交就可以了
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | def submit_url(self,url):while True:from_data = {"urls": url,"url": "","code": self.code,"role_id": 2,"site_id": 64517419,"site_address": "www.seopassion.com","urlSubFlag": 'true'}resp = self.session.post(url=self.post_url,data=from_data,headers=self.headers).json()if resp['code'] == 0:print('已成功推送')return resp['msg']elif resp['msg'] == '暂无权限':print(resp)return resp['msg']else:self.code_img()self.login_sougou() |
二、快照更新
快照更新是不需要登录的。所以会比较方便,那么在代码逻辑中,拿到post地址进行快照更新提交就ok了。
三、designer界面设计
在designer界面中,进行简单的软件设计,整体框架先罗列出来,这里就简单做了一下,没有对样式进行优化,比较简陋一点。
通过命令将ui文件转为py文件
1 | python -m PyQt5.uic.pyuic sougou1.ui -o sougou1.py |
将软件各个按钮点击事件与我们之前的python代码进行绑定,再对数据进行界面显示,整体逻辑就这样了。
四、最后运行结果
某狗主动提交
某狗快照更新
这里软件就简单设计了一下,后面将软件封装一下,就可以长期投入使用,如果有需要源码或者软件的话,可以随时私信我vx:dan_moln 。