Python教程:如何免驗證跳轉到內容頁?
相信很多人在瀏覽網頁時,經常會碰到需要輸入驗證碼才可以繼續瀏覽的情況吧,遇到這種問題,大多數人只能進行繁瑣的註冊驗證,今天小編教大家只要使用python就可以免驗證方法。
以經常用到的解答網站——上學吧為例,在網站裡點選答案頁面,會顯示驗證後才可以檢視提示,下面就使用python實現跳過驗證碼。
我們需要透過python構造隨機的 X-Forwarded-For 資訊來繞過 ASP 網站的 IP 檢測,可以實現對輸入的網址正確性進行檢查、對驗證碼核驗不透過時的處理等等。
python免驗證跳轉頁面程式碼如下:
# 繞過驗證碼無限次獲取上學吧題目答案 # 上學吧網址: import os import random import requests import urllib3 urllib3.disable_warnings() # 這句和上面一句是為了忽略 https 安全驗證警告,參考:https://www.cnblogs.com/ljfight/p/9577783.html from bs4 import BeautifulSoup from PIL import Image def get_verifynum(session): # 網址的驗證碼邏輯是先去這個網址獲取驗證碼圖片,提交計算結果到另外一個網址進行驗證。 r = session.get("/VerifyCode2.aspx", verify=False) # HTTPS 請求進行 SSL 驗證或忽略 SSL 驗證才能請求成功,忽略方式為 verify=False。參考:https://www.cnblogs.com/ljfight/p/9577783.html with open('temp.png','wb+') as f: f.write(r.content) image = Image.open('temp.png') image.show() # 呼叫系統的圖片檢視軟體開啟驗證碼圖片,如果不能開啟,可以自己找到 temp.png 開啟。 verifynum = input("n請輸入驗證碼圖片中的計算結果:") image.close() os.remove("temp.png") return verifynum def get_question(session): r = session.get(link) soup = BeautifulSoup(r.content, "html.parser") description = soup.find(attrs={"name":"description"})['content'] # 抓取題幹內容 return description def get_answer(session, verifynum, dataid): data1 = { "Verify": verifynum, "action": "CheckVerify", } session.post("/ajax/GetZuiJia.aspx", data=data1) # 核查驗證碼正確性 data2 = { "phone":"", "dataid": dataid, "action": "submitVerify", "siteid": "1001", "Verify": verifynum, } r = session.post("/ajax/GetZuiJia.aspx", data=data2) soup = BeautifulSoup(r.content, "html.parser") ans = soup.find('h6') print("n" + '-'*45) if(ans): # 只有驗證碼核查透過才會顯示答案 print("n題目:" + get_question(session)) print(ans.text) else: print('n沒有找到答案!請檢查驗證碼或網址是否輸入有誤!n') print('-'*45) if __name__ == '__main__': s = requests.session() while True: s.headers.update({"X-Forwarded-For":"%d.%d.%d.%d"%(random.randint(120,125),random.randint(1,200),random.randint(1,200),random.randint(1,200))}) # 這一句是整個程式的關鍵,透過修改 X-Forwarded-For 資訊來欺騙 ASP 站點對於 IP 的驗證。 link = input("n請輸入上學吧網站上某道題目的網址,例如:/8952241.htmlnn請輸入:").strip() # 過濾首尾的空格 if(link[0:31] != "/" or link[-4:] != "html"): print("n網址輸入有誤!請重新輸入!n") continue dataid = link.split("/")[-1].replace(r".html","") # 提取網址最後的數字部分 if(dataid.isdigit()): # 根據格式,dataid 應該全部為數字,判斷字串是否全部為數字,返回 True 或者 False verifynum = get_verifynum(s) get_answer(s, verifynum, dataid) else: print("n網址輸入有誤!請重新輸入!n") continue
注意:其中 requests 和 beautifulsoup 兩個庫需要另外安裝,建議使用 pip 方式安裝:
pip install requests
pip install beautifulsoup4
Python 指令碼執行流程:
首先複製上學吧某道題目的網址,類似以下格式:
然後執行python指令碼,複製貼上網址。
按Enter鍵,自動下載驗證碼圖片存為 temp.png,然後自動讀取圖片並展示,也可以手動開啟同目錄下的 temp.png 圖片。
最後在命令列視窗輸入驗證碼圖片中的計算結果即可獲取題目詳情以及正確答案。
以上就是PyThon免驗證跳轉內容頁的全部內容了,感興趣的小夥伴可以跟著教程實際操作~如需瞭解更多python實用知識,點選進入。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/818/viewspace-2832540/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- java抓取有驗證的頁面內容Java
- ios跳轉到通用頁面iOS
- Flutter頁面跳轉到IOS原生介面 如何實現?FlutteriOS
- Flutter:如何跳轉頁面?Flutter
- Gridview分頁,清空,跳轉到View
- 在session過期後如何跳轉到登入頁面Session
- PHP頁面跳轉如何實現延時跳轉PHP
- js頁面跳轉的問題(跳轉到父頁面、最外層頁面、本頁面)JS
- 網頁跳轉(APP內/瀏覽器)網頁APP瀏覽器
- 瀏覽器內外跳 -- 跳轉到指定應用瀏覽器
- 案例分享,Appium+Python實現APP啟動頁跳轉到首頁APPPython
- 軟連結儲存內容的驗證
- 網站內容首頁設計經驗網站
- 如何在Spring Boot中驗證JSON請求內容? - SeunSpring BootJSON
- 織夢DedeCMS文章內容分頁頁數控制方法教程
- nginx 設定 404 500 頁面跳轉到指定頁面Nginx
- Android應用內外跳 — 跳轉到應用市場Android
- Android應用內外跳 -- 跳轉到應用市場Android
- 「微信小程式免費輔導教程」26,基礎內容元件rich-text體驗微信小程式元件
- 微信瀏覽器跳轉頁面後再返回,如何恢復到跳轉前的位置的問題。瀏覽器
- jquery驗證元素內容是否為空程式碼jQuery
- Laravel POST 請求 API 介面,使用自定義表單驗證,驗證失敗跳轉回首頁的問題記錄LaravelAPI
- python selenium查詢網頁內容Python網頁
- python 爬蟲如何爬取動態生成的網頁內容Python爬蟲網頁
- tomcat埠號直接跳轉到專案首頁Tomcat
- vue-cli 跳轉到頁面指定位置Vue
- win10怎樣禁止IE頁面自動跳轉到EDGE瀏覽器 win10禁止IE頁面自動跳轉到EDGE瀏覽器的教程Win10瀏覽器
- 淺談小程式內嵌網頁及內嵌網頁跳轉分享實現網頁
- iOS教程 免費使用SMSSDK語音驗證的方法iOS
- 直播app原始碼,跳轉站外連結或平臺內部跳轉頁面APP原始碼
- ext2目錄檔案的內容驗證
- 如何使用ScrapySharp下載網頁內容網頁
- 鴻蒙Navigation處理啟動頁跳轉到首頁問題鴻蒙Navigation
- python爬蟲:使用BeautifulSoup修改網頁內容Python爬蟲網頁
- 點選連結跳轉到應用指定頁面
- jQuery點選平滑跳轉到頁面指定位置jQuery
- 中泰證券:內容社群84頁研究框架(附下載)框架
- Android使用WebView嵌入網頁,網頁內點選跳轉到另一個網頁後,返回問題解決AndroidWebView網頁