Python实现的百度站长自动URL提交小工具
admin
2023-07-31 02:06:52
0

URL提交是百度提供的一个站长工具,用于给站长提供手工收录某些URL的接口,但是该接口有验证码识别部分,比较难弄。所以编写了如下程序进行验证码自动识别:

主要思路

获取多个验证码,提交到 http://lab.ocrking.com/ 进行多次识别,然后计算每个验证码图片识别出来的 字母或数字 进行统计,得出统计率最高的 即为验证码。

复制代码 代码如下:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import requests
import time
import json
import re
 
 
if __name__ == \”__main__\”:
    i = 1
    s = requests.session()
    s.headers.update({\’Referer\’:\’http://zhanzhang.baidu.com/sitesubmit/index\’,\’User-Agent\’:\’Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.154 Safari/537.36\’})
    r = s.get(\’http://zhanzhang.baidu.com/sitesubmit/index\’)
    s2 = requests.session()
    r = s.post(\’http://zhanzhang.baidu.com/captcha\’,data={\’async\’:\’false\’,\’n\’:time.time()})
    url = json.loads(r.content)[\’url\’]
    temp = []
    while 1:
        try:
            r = s.get(url)
            img_data = r.content
            r = s2.get(\’http://lab.ocrking.com/\’)
            try:
                content = \’ \’.join(r.content.split())
                sid =  re.findall(r\’\”sid\” : \”(.+?)\”\’,content)[0]
                hash_1 = re.findall(r\’\”hash\” : \”(.+?)\”\’,content)[0]
                timestamp = re.findall(r\’\”timestamp\” : \”(.+?)\”\’,content)[0]
            except:
                print \’error on get orking info!\’
                continue
            files = {\’Filedata\’:(\’icode.jpeg\’, img_data)}
            data  = {\’Filename\’:\’icode.jpeg\’,\’sid\’:sid,\’hash\’:hash_1,\’timestamp\’:timestamp}
            r = s2.post(\’http://lab.ocrking.com/upload.html\’,files = files,data= data)
            r = s2.post(\’http://lab.ocrking.com/ocrking.html\’,data={\’upfile\’:r.content,\’type\’:\’captcha\’,\’charset\’:\’7\’})
            icode = re.findall(r\'(.+?)\’,r.content)[0]
            if len(icode) != 4 :
                continue
            temp.append(icode)
            i = i + 1
            if i == 3 :
                break
        except Exception,e:
            print e
            pass
 
    a = {\’0\’:{},\’1\’:{},\’2\’:{},\’3\’:{}}
    for aa in temp:
        i = 0
        while i <=3 :
            try:
                a[str(i)][aa[i]] =  a[str(i)][aa[i]] + 1
            except:
                a[str(i)][aa[i]] = 1
            i = i + 1
    icode = [\’\’,\’\’,\’\’,\’\’]
    for index in a:
        temp_times = 0
        for index_1 in a[index]:
            if a[index][index_1] >= temp_times :
                temp_times = a[index][index_1]
                icode[int(index)] = index_1
 
    icode =  \’\’.join(icode)
 
    img_name = \’temp\\\\\’+icode+\’.png\’
    file_object = open(img_name, \’w\’)
    file_object.write(img_data)
    file_object.close()
 
 
 
    #r = s.post(\’http://zhanzhang.baidu.com/sitesubmit/sitepost\’,data={\’url\’:\’http://lab.ocrking.com/\’,\’captcha\’:icode})
 
    #print r.content

相关内容

热门资讯

500 行 Python 代码... 语法分析器描述了一个句子的语法结构,用来帮助其他的应用进行推理。自然语言引入了很多意外的歧义,以我们...
Mobi、epub格式电子书如... 在wps里全局设置里有一个文件关联,打开,勾选电子书文件选项就可以了。
定时清理删除C:\Progra... C:\Program Files (x86)下面很多scoped_dir开头的文件夹 写个批处理 定...
scoped_dir32_70... 一台虚拟机C盘总是莫名奇妙的空间用完,导致很多软件没法再运行。经过仔细检查发现是C:\Program...
65536是2的几次方 计算2... 65536是2的16次方:65536=2⁶ 65536是256的2次方:65536=256 6553...
小程序支付时提示:appid和... [Q]小程序支付时提示:appid和mch_id不匹配 [A]小程序和微信支付没有进行关联,访问“小...
pycparser 是一个用... `pycparser` 是一个用 Python 编写的 C 语言解析器。它可以用来解析 C 代码并构...
微信小程序使用slider实现... 众所周知哈,微信小程序里面的音频播放是没有进度条的,但最近有个项目呢,客户要求音频要有进度条控制,所...
Apache Doris 2.... 亲爱的社区小伙伴们,我们很高兴地向大家宣布,Apache Doris 2.0.0 版本已于...
python清除字符串里非数字... 本文实例讲述了python清除字符串里非数字字符的方法。分享给大家供大家参考。具体如下: impor...