前一篇文章防止惡意刷介面 給網站加驗證碼很多人評論,說驗證碼可以破解,
學委震驚了! 我們搞系統設計和開發加入類似驗證碼等技術,主要防止惡意, 如果有人想要暴力智能破解,通過社會工程加上一些黑客技術,估計就是時間問題,但是我們會了技術,必須正直有良心,不能啥都去干!!!
這次先分享一個截屏網站的,后面再寫代碼攻破自己的網站,
本文主要討論簡短能入門的截屏代碼,并配置把它跑起來!
舉個例子:為了學習熱榜,我把熱榜截圖保留下來以后學習
第一步安裝selenium
selenium 是一個瀏覽器自動化框架,支持多語言,不多說直接安裝:
pip install selenium
不清楚pip的朋友請看 快速學會并精通pip 并三連支持,有問題可以友善評論,
這是selenium官網: https://www.selenium.dev/
第二步直接寫代碼
把下面的代碼保存為auto.py
'''
雷學委現寫代碼,只支持Python3, 其他版本請讀者自行實作,
'''
from selenium import webdriver
from selenium.webdriver import Firefox,Chrome
from selenium.webdriver.common.by import By
def xuewei_open(driver, url):
driver.get(url)
driver.maximize_window()
driver.implicitly_wait(5)
print("max done")
def exit(driver):
driver.quit()
print("exit...")
#這里是本機的chromedriver路徑
driver = Chrome("/Users/mac/webdriver/chromedriver")
driver.implicitly_wait(3)
img_path = "./code.png"
#可以用百度新聞
#url="http://news.baidu.com/"
#也可以把CSDN熱榜截圖保存,保持學習熱榜文章
url = "https://blog.csdn.net/rank/list"
xuewei_open(driver, url)
chrome_size = driver.get_window_size()
print("win size %s " % str(chrome_size))
driver.get_screenshot_as_file(img_path)
print("save screen to path: %s"% img_path)
exit(driver)
運行上面的代碼:python auto.py
下圖就是上面代碼截屏出來的:

第三步,如果第二步發現因為chromedriver沒有安裝
請移步 chrome driver 版本下載, 從下面三個任意選一個:
http://npm.taobao.org/mirrors/chromedriver/
http://chromedriver.storage.googleapis.com/index.html
https://chromedriver.chromium.org/downloads
因為上面的代碼直接硬編碼了chromedriver的路徑了,解壓,配置到的PATH,但不是必要,
下載對應版本的報,解壓安裝到/Users/mac/webdriver/ ,
最終路徑為:/Users/mac/webdriver/chromedriver
下面是驗證安裝效果,注意版本號跟當前主機安裝的chrome瀏覽器一致!否則重新下載,

原理簡化決議
如下圖的組件互動程序:
selenium 內部驅動了chromedriver,我們呼叫driver的各種函式,背后其實就是chromedriver跟瀏覽器溝通,
比如driver.maximize_window 這個函式會通過 chromedriver 傳遞一個最大化視窗的指令給Chrome瀏覽器,
不止是Chrome瀏覽器,selenium 還支持多個瀏覽器的自動化,我們后面再看,

題外話
不是說破解驗證碼碼?小白請先把上面的代碼學了,
破解驗證的程序就是:
- 截屏帶驗證碼的頁面
- 區域提取圖片
- 決議圖片為文本(還有其他形式需要用其他的庫)
- 使用selenium呼叫driver提交驗證碼帶上(send_keys),
會的朋友可以試試看, 最好使用爬蟲必須謹慎,不要當做兒戲去爬機構網站,
本文僅作展示目的,對于演示網站有任何異議,請告知修改,
持續學習持續開發,我是雷學委!
編程很有趣,關鍵是把技術搞透徹講明白,
創作不易,請多多支持,點贊收藏支持學委吧!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/291481.html
標籤:python
上一篇:JAVA階段五之面對物件應用
