Python实现的百度站长自动URL提交小工具

 更新时间:2014年06月27日 11:22:48   投稿:junjie  
这篇文章主要介绍了Python实现的百度站长自动URL提交小工具,主要难点在验证码识别部分,研究验证码识别的朋友可以参考下

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'<OcrResult>(.+?)</OcrResult>',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

相关文章

  • Pycharm学习教程(3) 代码运行调试

    Pycharm学习教程(3) 代码运行调试

    这篇文章主要为大家详细介绍了最全的Pycharm学习教程第三篇代码运行调试,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • 使用Python发送Post请求以及解析响应结果

    使用Python发送Post请求以及解析响应结果

    发送post的请求参考例子很简单,实际遇到的情况却是很复杂的,下面这篇文章主要给大家介绍了关于如何使用Python发送Post请求以及解析响应结果的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-06-06
  • 举例讲解Linux系统下Python调用系统Shell的方法

    举例讲解Linux系统下Python调用系统Shell的方法

    这篇文章主要介绍了举例讲解Linux系统下Python调用系统Shell的方法,包括用Python和shell读取文件某一行的实例,需要的朋友可以参考下
    2015-11-11
  • python书籍信息爬虫实例

    python书籍信息爬虫实例

    这篇文章主要为大家详细介绍了python书籍信息爬虫示例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-03-03
  • Python基础第三方模块requests openpyxl

    Python基础第三方模块requests openpyxl

    这篇文章主要为大家介绍了Python基础第三方模块requests openpyxl使用示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11
  • python OpenCV的imread不能读取中文路径问题及解决

    python OpenCV的imread不能读取中文路径问题及解决

    这篇文章主要介绍了python OpenCV的imread不能读取中文路径问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • Python中列表复制的常用方法解析

    Python中列表复制的常用方法解析

    在Python编程中,经常需要对列表进行复制或克隆操作,以便保护原始数据或创建独立的副本,本文将详细介绍如何在Python中进行列表克隆,以及如何选择合适的方法来保护数据,希望对大家有所帮助
    2024-02-02
  • 浅析Python中的弱引用与基础类型支持情况

    浅析Python中的弱引用与基础类型支持情况

    最近有一个业务场景需要用Python自行实现一个简单的LRU cache,不可避免的接触到了弱引用这一概念,所以下面就来和大家分享一下相关的知识吧
    2023-07-07
  • 基于Python实现一个PDF特殊字体提取工具

    基于Python实现一个PDF特殊字体提取工具

    在PDF文档处理场景中,我们常常需要针对特定格式的文本内容进行提取分析,本文介绍的"PDF特殊字体提取器"是一款基于Python开发的桌面应用程序感兴趣的小伙伴跟着小编一起来看看吧
    2025-03-03
  • Python常见内置高效率函数用法示例

    Python常见内置高效率函数用法示例

    这篇文章主要介绍了Python常见内置高效率函数用法,结合实例形式分析了Python中filter()、map()、reduce()、lambda匿名函数等功能与简单使用技巧,需要的朋友可以参考下
    2018-07-07

最新评论