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

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

时间: 2024-08-02 00:07:04

Python实现的百度站长自动URL提交小工具_python的相关文章

谈谈百度url提交通道工具升级给站长带来的启示

9月6日下午5点的时候,百度发布了<url提交通道工具全新升级>的全新公告说明,相信各位站长在利用百度搜索引擎的时候也了解到这项内容,我们在采用百度引擎的时候比以前多了一项功能   假如你在百度中输入的网址是百度没有收录的,那么百度引擎就会给你提示,相比以前直接访问而言多了一个提交网址的这个功能,而今天百度对此功能进行了全面的升级. 我们先来看看这张百度公告中的截图   通过图中我们可以了解到此次更新URL提交功能为站长带来了一些新的体验,比如将以前只能够提交首页的功能进行了拓展,现在可以对网

百度站长平台:url提交通道工具升级 通知百度网页搜索

       A5站长网消息:9月6日百度站长平台发布公告称url提交通道工具全新升级.升级以后,当站长和用户在百度里搜索某条url,发现百度没有收录时,可以点击"提交网址",进入百度站长平台向百度网页搜索提交这条url,通知百度网页搜索.         详细公告如下: 各位网站管理员: 大家好! 非常高兴的告诉大家,百度站长平台对url提交通道工具进行了升级,具体如下: 1.当站长和用户在百度里搜索某条url,发现百度没有收录时,可以点击"提交网址",进入百度站

url提交通道工具是否能够促进文章的收录?

近期百度算法的不断改进,让很多网站死无葬身之地.从大多网站的惩罚案例来看,一旦被惩罚恢复的几率不大,面对网站降权无计可施,除了抱怨还得不断学习掌握技术知识,算法经常调整,我们得学会不断的适应,今天你的网站没惩罚,不代表明天就安然无恙,做seo应该时刻保持危机感. 从搜索引擎算法的改进来看,如今的seo不仅仅需要掌握大的方向,小细节也显得越来越重要,以前做seo可能会认为内容加外链,现在内容可能自认为做的很好.外链发的很多但也被降权,百思不得其解,其实搜索引擎归根结底还是在用户体验上,因此做好se

【求助】用Python写出一个遍历网站所有url的小工具

问题描述 [求助]用Python写出一个遍历网站所有url的小工具 用Python 怎么写出一个 遍历网站所有url的小工具, 包括首页的url和所有子网页url 不能有重复的url,我自己写的只能遍历一个网页的 首页,子网页的遍历不出来,新人 没币 ,求好心人帮助!!! 解决方案 http://www.cnblogs.com/fnng/p/3576154.htmlhttp://www.oschina.net/code/list_releted_codes?id=25402 解决方案二: htt

百度站长平台外链查询工具正式开放

十二月初,百度站长平台宣布外链工具发布内测资格,外链在工具升级版内测期间邀请了Zac.牟长青.IT咖啡厅.28推.推一把.bloghuman等SEO专家及媒体参与内测,Zac及广大内测用户提出了很多珍贵的建议,在综合考虑了这些珍贵的建议之后对外链工具进行了优化升级,并在12月5日面向所有网站全部开放使用. 外链工具功能亮点: 1.开放查询全网外链. 2.提供更多详细的外链信息,可显示链接最多的主域top2000信息. 3.支持外链名称的查询. 4.增加网站外链的曲线图展示,更清晰的查看网站外链情

URL 筛选小工具 提取网页中的链接地址_vbs

使用方法:将下面的代码保存为jb51.vbs然后拖动你保存在本地的htm页面,拖放在这个vbs即可 复制代码 代码如下: '备注:URL筛选小工具 '防止出现错误 On Error Resume Next 'vbs代码开始---------------------------------------------- Dim p,s,re If Wscript.Arguments.Count=0 Then Msgbox "请把网页拖到本程序的图标上!",,"提示" Ws

Python语言编写电脑时间自动同步小工具_python

话不多说,小工具需求如下: 功能需求 -- 电脑开机后自动执行时间同步 非功能需求 -- 安装执行简单,无需安装额外环境 一.代码实现 基于以上需求,思路如下:访问网络获取北京时间,然后调用命令行来设置系统时间.程序写成Windows Service,并设置为开机自动运行.正好前段时间在学习Python,所以打算用Python来写这个工具.具体代码如下: 获取网络时间 复制代码 代码如下:  def getBeijinTime():     """  获取北京时间     &

利用Python实现颜色色值转换的小工具_python

先看看Zeplin 的颜色色值显示示例 原有处理方式 因为我会 Python (仅限于终端输入 python 然后当做计算器算,或者用 hex() 函数把十进制转换成十六进制),所以遇到这样的问题我当然是采用python 的 hex() 函数做转换,然后手动结果输入到 Android Studio 中. 采用 hex 函数手动转换色值 动机 人总是懒得,想要写这个小工具已经很久了,我也打过有过构思就是:      输入: 类似 RGB 的十进制值(110, 122 138),用空格或者逗号分割一

Python 实现一个颜色色值转换的小工具_python

需求说明 公司的 UI 设计小哥,已经转用 Zeplin 很久了.Zeplin 的设计稿展示页面的颜色色值使用十进制的 RGB 表示的,在 Android 中的颜色表示大多情况下都需要十六进制的 RGB 表示.我的数学没有好到直接看到十进制就可以心算得到十六进制的结果,所以我需要一个工具,输入十进制的 RGB ,得到十六进制的色值,最好可以方便复制.  Zeplin 的颜色色值显示示例 原有处理方式 因为我会 Python (仅限于终端输入 python 然后当做计算器算,或者用 hex() 函