导航:首页 > 编程语言 > python爬虫手机短信验证码

python爬虫手机短信验证码

发布时间:2023-06-06 20:36:31

‘壹’ 用python正则表达式怎么从短信中提取验证码

a=re.findall(":\d+",str)
for i in a:
i=i[1:]
print i

‘贰’ python selenium 获取短信验证码是字符和数字怎么读取数字

读取短信需要在相应的手机上读取呀
由于工作需要,登录网站需要用到验证码。最初是研究过验证码识别的,但是总是不能获取到我需要的那个验证码。直到这周五,才想起这事来,昨天顺利的解决了。
下面正题:
Python版本:3.4.3
所需要的代码库:PIL,selenium,tesseract
先上代码:
#coding:utf-8
import subprocess
from PIL import Image
from PIL import ImageOps
from selenium import webdriver
import time,os,sys

def cleanImage(imagePath):
image = Image.open(imagePath) #打开图片
image = image.point(lambda x: 0 if x<143 else 255) #处理图片上的每个像素点,使图片上每个点“非黑即白”
borderImage = ImageOps.expand(image,border=20,fill='white')
borderImage.save(imagePath)

def getAuthCode(driver, url="http://localhost/"):
captchaUrl = url + "common/random"
driver.get(captchaUrl)
time.sleep(0.5)
driver.save_screenshot("captcha.jpg") #截屏,并保存图片
#urlretrieve(captchaUrl, "captcha.jpg")
time.sleep(0.5)
cleanImage("captcha.jpg")
p = subprocess.Popen(["tesseract", "captcha.jpg", "captcha"], stdout=\
subprocess.PIPE,stderr=subprocess.PIPE)
p.wait()
f = open("captcha.txt", "r")

#Clean any whitespace characters
captchaResponse = f.read().replace(" ", "").replace("\n", "")

print("Captcha solution attempt: " + captchaResponse)
if len(captchaResponse) == 4:
return captchaResponse
else:
return False

def withoutCookieLogin(url=""):
driver = webdriver.Chrome()
driver.maximize_window()
driver.get(url)
while True:
authCode = getAuthCode(driver, url)
if authCode:
driver.back()
driver.find_element_by_xpath("//input[@id='orgCode' and @name='orgCode']").clear()
driver.find_element_by_xpath("//input[@id='orgCode' and @name='orgCode']").send_keys("orgCode")
driver.find_element_by_xpath("//input[@id='account' and @name='username']").clear()
driver.find_element_by_xpath("//input[@id='account' and @name='username']").send_keys("username")
driver.find_element_by_xpath("//input[@type='password' and @name='password']").clear()
driver.find_element_by_xpath("//input[@type='password' and @name='password']").send_keys("password")
driver.find_element_by_xpath("//input[@type='text' and @name='authCode']").send_keys(authCode)
driver.find_element_by_xpath("//button[@type='submit']").click()
try:
time.sleep(3)
driver.find_element_by_xpath("//*[@id='side-menu']/li[2]/ul/li/a").click()
return driver
except:
print("authCode Error:", authCode)
driver.refresh()
return driver

driver = withoutCookieLogin("http://localhost/")
driver.get("http://localhost/enterprise/add/")

怎么获取我们需要的验证码
在这获取验证码的道路上,我掉了太多的坑,看过太多的文章,很多都是教你验证码的识别方法,但是没有说明,怎么获取你当前需要的验证码图片。
我的处理方法是:
1.先用selenium打开你需要的登录的页面地址url1

2.通过审核元素获取验证码的地址url2(其实最简单的是右键打开新页面)

3:在url1页面,输入地址url2进入url2页面,然后截屏保存验证码页面

4:处理验证码得到验证码字符串。然后点击浏览器后退按钮,返回url1登录页面
5:输入登录需要的信息和验证码

6:点击登录
7:验证登录后的页面,判断是否成功,若不成功则需要重新1-7的操作。
为了保护公司的信息,这个页面是我本地搭的服务,我在伯乐在线注册页面进行测试过这个验证码获得方法,可以通过。(这个验证码的处理方法,仅限验证码背景是像素点,若验证码有横线需额外处理。)
第一篇博文,不喜勿喷。
验证码处理方法参考文献:
Web Scraping with python.pdf

‘叁’ python 爬虫

可以接入验证码识别平台接口解决

‘肆’ 如何python爬虫识别验证码

  1. 在用爬虫爬取网站数据时,有些站点的一些关键数据的获取需要使用账号登录,这里可以使用requests发送登录请求,并用Session对象来自动处理相关Cookie。

  2. 另外在登录时,有些网站有时会要求输入验证码,比较简单的验证码可以直接用pytesser来识别,复杂的验证码可以依据相应的特征自己采集数据训练分类器。

  3. 以CSDN网站的登录为例,这里用Python的requests库与pytesser库写了一个登录函数。如果需要输入验证码,函数会首先下载验证码到本地,然后用pytesser识别验证码后登录,对于CSDN登录验证码,pytesser的识别率很高。

‘伍’ python 爬虫,关于验证码的问题。输入验证码才能搜索。

#给你个例子参考验证码请求一次就变了
#!/usr/bin/python
#coding=utf-8
importrequests
importurllib
importurllib2,hashlib,md5

importcookielib

def_md5(password):
md5=hashlib.md5()
md5.update(str.encode(password))
psw=md5.hexdigest()
returnpsw
url='https://passport.liepin.com/captcha/randomcode?2hy270c2ji1'
req=urllib2.Request(url)
res_data=urllib2.urlopen(req)
res=res_data.read()
output_file=open('1.jpg','wb')
output_file.writelines(res)
output_file.close()
verifycode=res_data.headers['Set-Cookie'].split(';')[0]
verifycode=verifycode.replace('verifycode=','')
filename=res_data.headers['Content-disposition'].split(';')[1].strip()
exec(filename)

cookiejar=cookielib.CookieJar()
opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cookiejar))
vidcode=raw_input(u"请输入验证码(在本路径1.jpg):")
data={'user_login':"[email protected]",
'isMd5':"1",
'user_pwd':_md5('love123456'),
'verifycode':vidcode,
'url':""}

url='https://passport.liepin.com/h/login.json'
data=urllib.urlencode(data)
headers={'Content-Type':'application/x-www-form-urlencoded','X-Requested-With':'XMLHttpRequest','Cookie':'verifycode={0};'.format(verifycode)}
request=urllib2.Request(url,data,headers)
response=opener.open(request)
print'-------result-------------'
printresponse.read()
print'-------headers-------------'
printresponse.headers
print'-------cookies-------------'
forcookieincookiejar:
printcookie

‘陆’ python爬虫遇到验证码怎么办

遇到验证码就需要破解验证码,绕过验证码

阅读全文

与python爬虫手机短信验证码相关的资料

热点内容
人成pDF 浏览:700
抽烟喝酒真的解压吗 浏览:562
精通php5应用开发 浏览:601
安卓机导资料到电脑用什么软件 浏览:813
变频冰箱压缩机一直工作 浏览:469
php编译后怎么加密 浏览:426
python程序代码最简单 浏览:129
文件夹粘贴文件黑屏一下 浏览:861
服务器wait什么意思 浏览:265
java电子商务系统源码 浏览:502
单片机还要涨多久 浏览:260
苹果app上的小锁怎么设置 浏览:538
瑞萨单片机为什么不出名 浏览:801
阿里云服务器性能优化安全测试 浏览:372
linux组命令 浏览:967
怎么推广app让人去下载和注册 浏览:548
空调压缩机启动电容用大一点的行吗 浏览:396
mac命令行查找文件 浏览:177
按键精灵安卓版怎么停止线程 浏览:73
九爷妾不从命压缩包下载 浏览:462