Python實(shí)現(xiàn)的百度站長(zhǎng)自動(dòng)URL提交小工具
URL提交是百度提供的一個(gè)站長(zhǎng)工具,用于給站長(zhǎng)提供手工收錄某些URL的接口,但是該接口有驗(yàn)證碼識(shí)別部分,比較難弄。所以編寫了如下程序進(jìn)行驗(yàn)證碼自動(dòng)識(shí)別:
主要思路
獲取多個(gè)驗(yàn)證碼,提交到 http://lab.ocrking.com/ 進(jìn)行多次識(shí)別,然后計(jì)算每個(gè)驗(yàn)證碼圖片識(shí)別出來(lái)的 字母或數(shù)字 進(jìn)行統(tǒng)計(jì),得出統(tǒng)計(jì)率最高的 即為驗(yàn)證碼。
#!/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
- python根據(jù)京東商品url獲取產(chǎn)品價(jià)格
- python使用正則表達(dá)式提取網(wǎng)頁(yè)URL的方法
- python提取頁(yè)面內(nèi)url列表的方法
- Python實(shí)現(xiàn)從URL地址提取文件名的方法
- python對(duì)url格式解析的方法
- 使用Python生成url短鏈接的方法
- python實(shí)現(xiàn)通過(guò)代理服務(wù)器訪問(wèn)遠(yuǎn)程url的方法
- python實(shí)現(xiàn)對(duì)一個(gè)完整url進(jìn)行分割的方法
- python打開url并按指定塊讀取網(wǎng)頁(yè)內(nèi)容的方法
- python檢查URL是否正常訪問(wèn)的小技巧
相關(guān)文章
Pycharm學(xué)習(xí)教程(3) 代碼運(yùn)行調(diào)試
這篇文章主要為大家詳細(xì)介紹了最全的Pycharm學(xué)習(xí)教程第三篇代碼運(yùn)行調(diào)試,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05
使用Python發(fā)送Post請(qǐng)求以及解析響應(yīng)結(jié)果
發(fā)送post的請(qǐng)求參考例子很簡(jiǎn)單,實(shí)際遇到的情況卻是很復(fù)雜的,下面這篇文章主要給大家介紹了關(guān)于如何使用Python發(fā)送Post請(qǐng)求以及解析響應(yīng)結(jié)果的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-06-06
舉例講解Linux系統(tǒng)下Python調(diào)用系統(tǒng)Shell的方法
這篇文章主要介紹了舉例講解Linux系統(tǒng)下Python調(diào)用系統(tǒng)Shell的方法,包括用Python和shell讀取文件某一行的實(shí)例,需要的朋友可以參考下2015-11-11
Python基礎(chǔ)第三方模塊requests openpyxl
這篇文章主要為大家介紹了Python基礎(chǔ)第三方模塊requests openpyxl使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11
python OpenCV的imread不能讀取中文路徑問(wèn)題及解決
這篇文章主要介紹了python OpenCV的imread不能讀取中文路徑問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07
基于Python實(shí)現(xiàn)一個(gè)PDF特殊字體提取工具
在PDF文檔處理場(chǎng)景中,我們常常需要針對(duì)特定格式的文本內(nèi)容進(jìn)行提取分析,本文介紹的"PDF特殊字體提取器"是一款基于Python開發(fā)的桌面應(yīng)用程序感興趣的小伙伴跟著小編一起來(lái)看看吧2025-03-03
Python常見(jiàn)內(nèi)置高效率函數(shù)用法示例
這篇文章主要介紹了Python常見(jiàn)內(nèi)置高效率函數(shù)用法,結(jié)合實(shí)例形式分析了Python中filter()、map()、reduce()、lambda匿名函數(shù)等功能與簡(jiǎn)單使用技巧,需要的朋友可以參考下2018-07-07

