搜狗主动提交url并反馈快照更新软件(含源码)

本期为了满足用户的需求,特地的做了一款末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:
                break
            else:
                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   。

                 ​​​​​​​        ​​​​​​​        

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值