新浪微博登陆验证码如何取消验证码登陆?

为什么新浪微博登陆时需要输入两次验证码?
不同意楼上的,,我一直输两次的。。明明正确可就是又弹输入。。(摊手
你们真幸福,我都输了100次了还是登不上..看来微博是要改行做让人练习输验证码的网站了
第一次输入正确的话,会显示“请输入验证码”,要求输入第二次。我还特地测试了第一次故意输错,会显示“验证码输入错误”,再正确输入两次才能登录乛 乛。
现在是2015年了,我看新浪每次输两次验证码还要坚持多久。继续用qq登陆。
你们都说错了,新浪其实为我们考虑了,没有设置输入错误几次就锁定。新浪微博的验证码第一次无论如何不对,而且还区分大小写,反人类啊,连续输入七八次才能登上,要是它再来个输入五次错误锁定就给跪了,嗯·····看来还是讲用户体验的。
我他妈输了快一百次了吧 每次登新浪微博都想把地球炸了
我微博评论要输入验证码,奇怪了。而且发现微博访问很慢,特别是图片加载不出来。
我今天输了十几次,都一直要我再输入,WQNMLGB 新浪
其实我想说的是,这个是某些浏览器不兼容造成的。要网站自己的开发来改,他们把代码看穿,都不知道咋回事的。换个浏览器,好像又可以。
正确输入两次验证码这个事情已经困扰我很久了
已有帐号?
无法登录?
社交帐号登录新浪微博登陆的时候,总是提示要输入验证码怎么解决呢?
第一步:你的新浪微博必须通过邮箱认证,也就是你注册的时候,新浪微博会给你的邮箱发布一个激活链接,进入你的邮箱点击一下该链接即可。
第二步:出现验证码的原因有很多,可能你这个微博账号在多处电脑上登陆过,而电脑没有清除浏览器的记录,导致之前登陆过的电脑上还在登陆着你的微博账号。这样的话,最有效的方法就是直接改一下你的微博密码。那么你之前登陆过微博的电脑记录就不能在自动登陆你的微博账户了。
第三步:你的微博账户设置了账号保护,所以每次登陆都需要输入验证码。如何取消账户保护?登录页面后在 我的首页的右上角有个“帐号”。鼠标划过去会出现一排东西。点“帐号设置”在最下面那个“帐号安全”有个“登录保护”在这里你就可以设置了
第四步:出现这样的验证码和麻烦,也有可能是因为你这个微博账号不经常登录,微博官方认为你的账号是僵尸粉丝,其实你可以去,你粉丝多了之后,就不会认为你是僵尸账号啦!
登陆地点非帐号常用登陆地点, 异地登陆,有时需要反复输入验证码,而且输入验证码之后无效。
本地登陆,但是用了IP加速器,或者金牌网吧代理一些网络增益软件,这个也是经常出这个问题的
手机登陆新浪微博总是出现验证码错误,但是明明输入正确,怎么办?
一般使用手机登陆微博的用户,是因为网络延迟造成的你输入验证码时,显示错误。解决方法只能多试几次输入验证码了。
<i class="CzZanIcon" onclick="javascript:submitvote('','968012','');" id='showvotes_
请登录后收藏
用户未登录,请登录
使用更方便哦!1417人阅读
综合(25)
(v1.4.18)&_=9
# coding=utf8
import base64
import binascii
import cookielib
import json
import random
import rsa
import time
import urllib
import urllib2
import urlparse
from pprint import pprint
__client_js_ver__ = &#39;ssologin.js(v1.4.18)&#39;
class Weibo(object):
&&&&Login assist for Sina weibo.&&&
def __init__(self, username, password):
self.username = self.__encode_username(username).rstrip()
self.password = password
cj = cookielib.LWPCookieJar()
self.opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
@staticmethod
def __encode_username(username):
return base64.encodestring(urllib2.quote(username))
@staticmethod
def __encode_password(password, info):
key = rsa.PublicKey(int(info[&#39;pubkey&#39;], 16), 65537)
msg = &#39;&#39;.join([
str(info[&#39;servertime&#39;]),
&#39;\t&#39;,
str(info[&#39;nonce&#39;]),
&#39;\n&#39;,
str(password)
return binascii.b2a_hex(rsa.encrypt(msg, key))
def __prelogin(self):
url = (&#39;.cn/sso/prelogin.php?&#39;
&#39;entry=weibo&callback=sinaSSOController.preloginCallBack&rsakt=mod&checkpin=1&&#39;
&#39;su={username}&_={timestamp}&client={client}&#39;
).format(username=self.username, timestamp=int(time.time() * 1000), client=__client_js_ver__)
resp = urllib2.urlopen(url).read()
return self.__prelogin_parse(resp)
@staticmethod
def __prelogin_parse(resp):
p = re.compile(&#39;preloginCallBack\((.+)\)&#39;)
data = json.loads(p.search(resp).group(1))
return data
@staticmethod
def __process_verify_code(pcid):
url = &#39;.cn/cgi/pin.php?r={randint}&s=0&p={pcid}&#39;.format(
randint=int(random.random() * 1e8), pcid=pcid)
filename = &#39;pin.png&#39;
if os.path.isfile(filename):
os.remove(filename)
urllib.urlretrieve(url, filename)
if os.path.isfile(filename):
# get verify code successfully
display the code and require to input
from PIL import Image
import subprocess
proc = subprocess.Popen([&#39;display&#39;, filename])
code = raw_input(&#39;请输入验证码:&#39;)
os.remove(filename)
proc.kill()
return dict(pcid=pcid, door=code)
return dict()
def login(self):
info = self.__prelogin()
login_data = {
&#39;entry&#39;: &#39;weibo&#39;,
&#39;gateway&#39;: &#39;1&#39;,
&#39;from&#39;: &#39;&#39;,
&#39;savestate&#39;: &#39;7&#39;,
&#39;useticket&#39;: &#39;1&#39;,
&#39;pagerefer&#39;: &#39;&#39;,
&#39;pcid&#39;: &#39;&#39;,
&#39;door&#39;: &#39;&#39;,
&#39;vsnf&#39;: &#39;1&#39;,
&#39;su&#39;: &#39;&#39;,
&#39;service&#39;: &#39;miniblog&#39;,
&#39;servertime&#39;: &#39;&#39;,
&#39;nonce&#39;: &#39;&#39;,
&#39;pwencode&#39;: &#39;rsa2&#39;,
&#39;rsakv&#39;: &#39;&#39;,
&#39;sp&#39;: &#39;&#39;,
&#39;sr&#39;: &#39;&#39;,
&#39;encoding&#39;: &#39;UTF-8&#39;,
&#39;prelt&#39;: &#39;115&#39;,
&#39;url&#39;: &#39;/ajaxlogin.php?framelogin=1&callback=parent.sinaSSOController.feedBackUrlCallBack&#39;,
&#39;returntype&#39;: &#39;META&#39;
if &#39;showpin&#39; in info and info[&#39;showpin&#39;]:
# need to input verify code
login_data.update(self.__process_verify_code(info[&#39;pcid&#39;]))
login_data[&#39;servertime&#39;] = info[&#39;servertime&#39;]
login_data[&#39;nonce&#39;] = info[&#39;nonce&#39;]
login_data[&#39;rsakv&#39;] = info[&#39;rsakv&#39;]
login_data[&#39;su&#39;] = self.username
login_data[&#39;sp&#39;] = self.__encode_password(self.password, info)
return self.__do_login(login_data)
def __do_login(self, data):
url = &#39;.cn/sso/login.php?client=%s&#39; % __client_js_ver__
headers = {
&#39;User-Agent&#39;: &#39;Weibo Assist&#39;
req = urllib2.Request(
url=url, data=urllib.urlencode(data), headers=headers)
resp = urllib2.urlopen(req).read()
return self.__parse_real_login_and_do(resp)
def __parse_real_login_and_do(self, resp):
p = re.compile(&#39;replace\([&\&#39;](.+)[&\&#39;]\)&#39;)
url = p.search(resp).group(1)
# parse url to check whether login successfully
query = urlparse.parse_qs(urlparse.urlparse(url).query)
if int(query[&#39;retcode&#39;][0]) == 0:
# successful
self.opener.open(url)
# log in and get cookies
print u&#39;登录成功!&#39;
return True
print u&#39;错误代码:&#39;, query[&#39;retcode&#39;][0]
print u&#39;错误提示:&#39;, query[&#39;reason&#39;][0].decode(&#39;gbk&#39;)
return False
def urlopen(self, url):
return self.opener.open(url)
if __name__ == &#39;__main__&#39;:
weibo = Weibo(&#39;&#39;, &#39;password&#39;)
if weibo.login():
print weibo.urlopen(&#39;&#39;).read()
# with open(&#39;weibo.html&#39;, &#39;w&#39;) as f:
# print && f, weibo.urlopen(&#39;/kaifulee&#39;).read()
#-----------------------------------------------------------
转载于:http://blog.youcanlove.me/xin-lang-wei-bo-deng-lu-fen-xi/
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:149555次
积分:2908
积分:2908
排名:第8589名
原创:119篇
转载:153篇
评论:18条
(1)(1)(3)(5)(3)(3)(2)(13)(12)(1)(7)(11)(4)(14)(2)(4)(1)(13)(44)(15)(3)(2)(5)(23)(29)(52)避风的港湾-睿宇科技~~~寻找.Net的精华
随笔 - 686
评论 - 733
引用 - 114
有次帮某人发spam,找人来填调查。写了个自动评论的脚本,但是发出一定数量的评论之后就会遭遇验证码,于是决定破解之。 思路也是一般的转化切割比对,成功率不是很高,不过重试几次也是可以用的。 虽然已经控制好了频率,不过最后还是被管理员发现了,直接封了帐号(好在是临时注册的),再注册再封,后来干脆封IP,于是不得不给我的vps换了个ip(也好在是免费的),杯具。 闲话休说,言归正题。 首先是需要取得验证码的样本,以作训练特征之用。而要取得验证码,首先要模拟登录的请求:
usr = 'xx' psw = 'oo' resp = urllib2.urlopen('.cn/sso/login.php?username=%s&password=%s&returntype=TEXT' %&(
usr, psw)) cookie = Cookie.SimpleCookie(resp.headers['set-cookie']) headers = {
'Referer': '.cn',
'Cookie': cookie_header(cookie),
'User-Agent': 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.3pre) Gecko/ Firefox/3.6.3plugin1', } def cookie_header(cookie):
for v in cookie.values():
ret += "%s=%s; " % (v.key, v.value)
return ret
headers就是后续的请求中,需要传递的参数了。 取回一些验证码样本:
for i in xrange(100):
req_img = urllib2.Request('.cn/pincode/pin.php?lang=zh&r=%d&rule' % int(time() * 1000),
headers = headers)
res_img = urllib2.urlopen(req_img)
f = open('xinlang_pincode/%d.png' % i, 'wb')
f.write(res_img.read())
有一些验证码的回答是中文,中国首都什么的,这些不处理,直接返回失败。因为可以重复获取重新识别,不成问题的。下面是处理算术问题验证码的方法: 先进行变换处理:
from PIL import Image, ImageFilter, ImageEnhance file = 'xinlang_pincode/0.png' & im = Image.open(file) im = im.convert() & enhancer = ImageEnhance.Brightness(im) im = enhancer.enhance(2.0) #加亮,效果见图1 enhancer = ImageEnhance.Contrast(im) im = enhancer.enhance(4) #提高对比度,效果见图2 im = im.convert('1') #二值化,效果见图3 im = im.filter(ImageFilter.MedianFilter) #中值去噪,效果见图4 im.show() #调用xv命令来显示图片,方便debug
这样处理过之后,图片背景中的色块被过滤掉,杂点也被过滤掉,而数字的形状也没有太大的损失。 下面是分解字符,也就是将每一个数字或者+-*等符号分解出来:
imim = im.load() WIDTH = 250 HEIGHT = 50 & i = 0 has_start = False chars = [] while i & WIDTH:
all_none = True
for j in xrange(HEIGHT):
if imim[i, j] != 255:
all_none = False
if all_none:
if has_start:
has_start = False
char = im.crop((start_x, 0, end_x, HEIGHT))
char.show() #到这一步的效果见图5 &
charchar = char.load()
width = end_x - start_x
y2 = HEIGHT - 1
all_none = True
while all_none:
for ii in xrange(width):
if charchar[ii, y1] != 255:
all_none = False
all_none = True
while all_none:
for ii in xrange(width):
if charchar[ii, y2] != 255:
all_none = False
char = char.crop((0, y1 - 1, width, y2 + 2))
char = char.resize((20, 20)) #将图片缩放到统一的大小
char.show() #到这一步的效果见图6 &
chars.append(char)
if not has_start:
start_x = i
has_start = True
图5:字符被独立分割开
图6:字符上下两边的空白被去掉,且缩放到同一大小
这一步得到的chars是下面要用到的。 然后是训练,也就是形成特征库。特征库规模越大,识别率也越高。不过训练起来也挺累的,有几十上百条也就好了。至少0到9和+-*=等几个字符的特征都要有:
file = open('xinlang.img', 'a') for c in chars:
im_loaded = c.load()
for x in range(20):
for y in range(20):
if im_loaded[x, y] == 255:
nstr += '0'
nstr += '1'
n = raw_input('? ')
file.write(nstr+':'+n+'\n') file.close()
这里的特征,就是直接把每一个像素的信息,用0和1组成的字符串表示。 训练的结果是一个文本文件,记录了对应的特征和字符,用于下面的比对。 比对函数:
pattern = [] for l in open('xinlang.img', 'r').read().split('\n'):
pattern.append(l.split(':')) del pattern[-1] & def what(img):
im = img.load()
for x in xrange(20): #生成目标图像的特征字符串
for y in xrange(20):
if im[x, y] == 255:
nstr += '0'
nstr += '1'
minmin = 400
res = None
for p in pattern:
for i in xrange(400):
if nstr[i] != p[0][i]: #比对每一个像素,如果不相同,则增加差异值
if cur & = minmin: #记录下差异值最小时所对应的字符
minmin = cur
res = p[1]
return res
最后测试一下:
for c in chars:
print what(c),
可以看到18+18这些字符可以成功识别。那为什么=和?识别不了呢?因为我没有训练这两个字符,而=和?都和数字2的特征最接近 -_,-|
这个验证码还是挺好破解的,因为字符之间间距很大,而且没有旋转,没有扭曲,不需要多少变换就能得到可用的结果。像google的那种,就完全没法可想了。
阅读(...) 评论()
Copyright & PointNet
Powered by:
模板提供:&&&&新浪微博登陆验证码识别
新浪微博登陆验证码识别
这个是识别新浪微博验证码的测试小程序,识别率最高能达到50%多,一般情况下40%多。内有验证码识别库,但不提供识别库连接密码。
若举报审核通过,可奖励20下载分
被举报人:
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:
VIP下载&&免积分60元/年(1200次)
您可能还需要
网络技术下载排行

我要回帖

更多关于 新浪微博登陆验证码 的文章

 

随机推荐