導航:首頁 > 編程語言 > 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爬蟲手機簡訊驗證碼相關的資料

熱點內容
安卓剪映如何更改視頻文字 瀏覽:554
什麼足球app能看雙方陣容 瀏覽:891
京東文件夾英文名 瀏覽:658
冬天程序員面試穿搭女生 瀏覽:423
開會時如何發言app 瀏覽:943
手寫加密演算法java版 瀏覽:45
如何使用命令解壓rar 瀏覽:834
海爾之家app怎麼連接設備 瀏覽:856
高壓水槍壓槍解壓視頻 瀏覽:778
如何檢索遠程伺服器的ip地址 瀏覽:28
華為西安演算法中心 瀏覽:787
安卓什麼app的組件好看 瀏覽:552
外網伺服器地址誰有 瀏覽:194
計算三角形面積java 瀏覽:678
如何24小時開伺服器 瀏覽:729
靈動單片機的模擬設置 瀏覽:793
重慶監控伺服器雲主機 瀏覽:257
python環境模塊安裝 瀏覽:219
梧桐木和壓縮板的桌子哪個好 瀏覽:45
單片機註解 瀏覽:574