Python实现的百度站长自动URL提交小工具
作者:junjie 时间:2023-08-24 10:36:31
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
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
pycharm 实现本地写代码,服务器运行的操作
![](https://img.aspxhome.com/file/2023/6/126986_0s.jpg)
SqlServer应用之sys.dm_os_waiting_tasks 引发的疑问(中)
![](https://img.aspxhome.com/file/2023/5/89685_0s.png)
Windows下mysql 8.0.12 安装详细教程
![](https://img.aspxhome.com/file/2023/2/129902_0s.png)
python基础之引用和匿名函数
![](https://img.aspxhome.com/file/2023/3/81563_0s.jpg)
Python urllib库如何添加headers过程解析
SpringBoot使用flyway初始化数据库
![](https://img.aspxhome.com/file/2023/1/79271_0s.png)
Pytorch四维Tensor转图片并保存方式(维度顺序调整)
![](https://img.aspxhome.com/file/2023/0/95440_0s.png)
Python 读取位于包中的数据文件
Python爬虫设置代理IP的方法(爬虫技巧)
Echarts利用多X轴实现七天天气预报效果的示例代码
![](https://img.aspxhome.com/file/2023/7/56367_0s.png)
python pygame入门教程
![](https://img.aspxhome.com/file/2023/3/131133_0s.png)
Python中range、np.arange和np.linspace的区别
![](https://img.aspxhome.com/file/2023/5/64265_0s.png)
git 将本地文件(夹)上传到gitee指定分支的处理方法
![](https://img.aspxhome.com/file/2023/8/132258_0s.png)
Python 内置变量和函数的查看及说明介绍
![](https://img.aspxhome.com/file/2023/3/83813_0s.jpg)
五分钟带你搞懂python 迭代器与生成器
Python实现代码统计工具(终极篇)
![](https://img.aspxhome.com/file/2023/6/134646_0s.jpg)
python命名关键字参数的作用详解
mysql中left join设置条件在on与where时的用法区别分析
![](https://img.aspxhome.com/file/2023/7/114017_0s.png)
推荐19个很有用的 JavaScript 库
Tensorflow与RNN、双向LSTM等的踩坑记录及解决
![](https://img.aspxhome.com/file/2023/2/81492_0s.png)