日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Learn python the seventh day

發布時間:2025/3/16 python 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Learn python the seventh day 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

# 破解極驗滑動驗證 '''
破解極驗滑動驗證
破解極驗滑動驗證
博客園登錄url:
https://account.cnblogs.com/signin?returnUrl=https%3A%2F%2Fwww.cnblogs.com%2F

代碼邏輯:
1、輸入用戶名與密碼,并點擊登錄
2、彈出滑動驗證,獲取有缺口與完整的圖片
3、通過像素點進行比對,獲取滑動位移距離
4、模擬人的行為軌跡
5、開始滑動

'''

1 from selenium import webdriver # 用來驅動瀏覽器的 2 from selenium.webdriver import ActionChains # 破解滑動驗證碼的時候用的 可以拖動圖片 3 import time 4 from PIL import Image # pip3 install pillow 5 import random 6 7 # 截圖圖片函數 8 def cut_image(driver): 9 # 獲取整個頁面圖片,圖片名字為'snap.png' 10 driver.save_screenshot('snap.png') 11 12 # 獲取滑動小畫圖 13 image = driver.find_element_by_class_name('geetest_canvas_img') 14 print(image.location) 15 print(image.size) 16 17 # 獲取小圖片的左上右下的位置 18 left = image.location['x'] 19 top = image.location['y'] 20 right = left + image.size['width'] 21 buttom = top + image.size['height'] 22 print(left, top, right, buttom) 23 24 # 調用open方法打開全屏圖片并賦值給image_obj對象 25 image_obj = Image.open('snap.png') 26 27 # 通過image_obj對象對小圖片進行截取 28 # box: The crop rectangle, as a (left, upper, right, lower)-tuple. 29 img = image_obj.crop((left, top, right, buttom)) 30 # 打開截取后的小圖片 31 img.show() 32 return img 33 34 # 獲取完整圖片 35 def get_image1(driver): 36 time.sleep(2) 37 38 # 修改document文檔樹,把完整圖片的display屬性修改為block 39 js_code = ''' 40 var x = document.getElementsByClassName("geetest_canvas_fullbg")[0].style.display = "block"; 41 ''' 42 43 # 執行js代碼 44 driver.execute_script(js_code) 45 46 # 截取圖片 47 image = cut_image(driver) 48 49 return image 50 51 # 獲取有缺口圖片 52 def get_image2(driver): 53 time.sleep(2) 54 55 # 修改document文檔樹,把完整圖片的display屬性修改為block 56 js_code = ''' 57 var x = document.getElementsByClassName("geetest_canvas_fullbg")[0].style.display = "none"; 58 ''' 59 60 # 執行js代碼 61 driver.execute_script(js_code) 62 63 # 截取圖片 64 image = cut_image(driver) 65 66 return image 67 68 def main(): 69 driver = webdriver.Chrome(r'D:\chromedriver_win32\chromedriver.exe') 70 driver.implicitly_wait(10) 71 driver.get('https://account.cnblogs.com/signin?returnUrl=https%3A%2F%2Fwww.cnblogs.com%2F') 72 73 # 1、輸入用戶名與密碼,并點擊登錄 74 user_input = driver.find_element_by_id('LoginName') 75 user_input.send_keys('_tank_') 76 time.sleep(0.2) 77 78 pwd_input = driver.find_element_by_id('Password') 79 pwd_input.send_keys('k46709394.') 80 time.sleep(2) 81 82 login_submit = driver.find_element_by_id('submitBtn') 83 login_submit.click() 84 85 # 2、獲取完整的圖片 86 image1 = get_image1(driver) 87 88 # 3、獲取有缺口圖片 89 image2 = get_image2(driver) 90 91 time.sleep(100) 92 93 if __name__ == '__main__': 94 main() View Code

?

1 from selenium import webdriver # 用來驅動瀏覽器的 2 from selenium.webdriver import ActionChains # 破解滑動驗證碼的時候用的 可以拖動圖片 3 import time 4 from PIL import Image # pip3 install pillow 5 import random 6 7 8 # 截圖圖片函數 9 def cut_image(driver): 10 # 獲取整個頁面圖片,圖片名字為'snap.png' 11 driver.save_screenshot('snap.png') 12 13 # 獲取滑動小畫圖 14 image = driver.find_element_by_class_name('geetest_canvas_img') 15 print(image.location) 16 print(image.size) 17 18 # 獲取小圖片的左上右下的位置 19 left = image.location['x'] 20 top = image.location['y'] 21 right = left + image.size['width'] 22 buttom = top + image.size['height'] 23 print(left, top, right, buttom) 24 25 # 調用open方法打開全屏圖片并賦值給image_obj對象 26 image_obj = Image.open('snap.png') 27 28 # 通過image_obj對象對小圖片進行截取 29 # box: The crop rectangle, as a (left, upper, right, lower)-tuple. 30 img = image_obj.crop((left, top, right, buttom)) 31 # 打開截取后的小圖片 32 # img.show() 33 return img 34 35 36 # 獲取完整圖片 37 def get_image1(driver): 38 time.sleep(2) 39 40 # 修改document文檔樹,把完整圖片的display屬性修改為block 41 js_code = ''' 42 var x = document.getElementsByClassName("geetest_canvas_fullbg")[0].style.display = "block"; 43 ''' 44 45 # 執行js代碼 46 driver.execute_script(js_code) 47 48 # 截取圖片 49 image = cut_image(driver) 50 51 return image 52 53 54 # 獲取有缺口圖片 55 def get_image2(driver): 56 time.sleep(2) 57 58 # 修改document文檔樹,把完整圖片的display屬性修改為block 59 js_code = ''' 60 var x = document.getElementsByClassName("geetest_canvas_fullbg")[0].style.display = "none"; 61 ''' 62 63 # 執行js代碼 64 driver.execute_script(js_code) 65 66 # 截取圖片 67 image = cut_image(driver) 68 69 return image 70 71 72 # 獲取滑塊滑動距離 73 def get_distance(image1, image2): 74 # 小滑塊右側位置 75 start = 60 76 77 # 像素差 78 num = 60 79 print(image1.size) 80 for x in range(start, image1.size[0]): 81 for y in range(image1.size[1]): 82 83 # 獲取image1完整圖片每一個坐標的像素點 84 rgb1 = image1.load()[x, y] 85 86 # 獲取image2缺口圖片每一個坐標的像素點 87 rgb2 = image2.load()[x, y] 88 # (60, 86, 40) (60, 86, 40) rgb 89 print(rgb1, rgb2) 90 91 # abs獲取絕對值, 像素點比較的值 92 r = abs(rgb1[0] - rgb2[0]) 93 g = abs(rgb1[1] - rgb2[1]) 94 b = abs(rgb1[2] - rgb2[2]) 95 96 # 如果條件成立,則找到缺口位置 97 if not (r < num and g < num and b < num): 98 # 有誤差 - 7像素 99 return x - 7 100 101 102 # 模擬人的滑動軌跡 103 def get_strck_move(distance): 104 distance += 20 105 106 ''' 107 滑動行為軌跡 108 加速公式: 109 v = v0 + a * t 110 111 路程公式: 112 s = v0 * t + 0.5 * a * (t ** 2) 113 ''' 114 115 # 初速度 116 v0 = 0 117 118 # 時間 119 t = 0.2 120 121 # 位置 122 s = 0 123 124 # 滑動軌跡列表 向前滑動列表 125 move_list = [] 126 127 # 中間值,作為加減速度的位置 128 mid = distance / 5 * 3 129 130 # 加減速度列表 131 v_list = [1, 2, 3, 4] 132 133 # 循環位移 134 while s < distance: 135 if s < mid: 136 # 隨機獲取一個加速度 137 a = v_list[random.randint(0, len(v_list) - 1)] 138 139 else: 140 # 隨機獲取一個減速度 141 a = -v_list[random.randint(0, len(v_list) - 1)] 142 143 ''' 144 勻加速\減速運行 145 v = v0 + a * t 146 147 位移: 148 s = v * t + 0.5 * a * (t**2) 149 ''' 150 # 獲取初始速度 151 v = v0 152 153 # 路程公式: 154 s1 = v * t + 0.5 * a * (t ** 2) 155 s1 = round(s1) # 取整 156 157 # 加速公式: 158 # v = v0 + a * t 159 m_v = v + a * t 160 161 # 把當前加/減速度賦值給初始速度,以便下一次計算 162 v0 = m_v 163 164 # 把位移添加到滑動列表中 165 move_list.append(s1) 166 167 # 修改滑動初始距離 168 s += s1 169 170 # 后退列表, 自定義后退滑動軌跡,必須是負值 171 back_list = [-1, -1, -2, -3, -2, -1, -1, -2, -3, -2, -1, -1] 172 173 return {'move_list': move_list, 'back_list': back_list} 174 175 176 def main(): 177 driver = webdriver.Chrome(r'D:\chromedriver_win32\chromedriver.exe') 178 driver.implicitly_wait(10) 179 driver.get('https://account.cnblogs.com/signin?returnUrl=https%3A%2F%2Fwww.cnblogs.com%2F') 180 181 # 1、輸入用戶名與密碼,并點擊登錄 182 user_input = driver.find_element_by_id('LoginName') 183 user_input.send_keys('_tank_') 184 time.sleep(0.2) 185 186 pwd_input = driver.find_element_by_id('Password') 187 pwd_input.send_keys('k46709394.') 188 time.sleep(2) 189 190 login_submit = driver.find_element_by_id('submitBtn') 191 login_submit.click() 192 193 # 2、獲取完整的圖片 194 image1 = get_image1(driver) 195 196 # 3、獲取有缺口圖片 197 image2 = get_image2(driver) 198 199 # 4、比對兩張圖片,獲取滑動距離 200 distance = get_distance(image1, image2) 201 print(distance) 202 203 # 5、模擬人的滑動軌跡 204 move_dict = get_strck_move(distance) 205 # 獲取前進滑動軌跡 206 move_list = move_dict['move_list'] 207 # 獲取后退滑動軌跡 208 back_list = move_dict['back_list'] 209 210 # 6、開始滑動 211 move_tag = driver.find_element_by_class_name('geetest_slider_button') 212 # 點擊摁住滑動按鈕 213 ActionChains(driver).click_and_hold(move_tag).perform() 214 215 # 向前滑動 216 for move in move_list: 217 ActionChains(driver).move_by_offset(xoffset=move, yoffset=0).perform() 218 time.sleep(0.1) 219 220 time.sleep(0.1) 221 222 # 向后滑動 223 for back in back_list: 224 ActionChains(driver).move_by_offset(xoffset=back, yoffset=0).perform() 225 time.sleep(0.1) 226 227 # 制作微妙晃動 228 ActionChains(driver).move_by_offset(xoffset=3, yoffset=0).perform() 229 ActionChains(driver).move_by_offset(xoffset=-3, yoffset=0).perform() 230 231 time.sleep(0.1) 232 233 # 釋放滑動按鈕 234 ActionChains(driver).release().perform() 235 236 time.sleep(100) 237 238 239 if __name__ == '__main__': 240 main() View Code

?

----2019.6.19

?

轉載于:https://www.cnblogs.com/feiyufei/p/11067198.html

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的Learn python the seventh day的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧洲一区二区三区四区 | 天天插日日插 | 奇米网狠狠干 | 中文字幕欧美另类精品亚洲 | 欧美videos另类精品 | 伊人三区 | 日本老少交| 国产成人高清在线 | 91爱爱.com | 国产精品一区二区久久国产 | 亚洲毛片在线观看 | 日本精品免费视频 | 中文字幕制服诱惑 | 久久久国产免费 | 五月网 | 麻豆精品久久久久久久99蜜桃 | 黄色永久免费网站 | 午夜亚洲AV永久无码精品蜜芽 | 日啪| 三级黄色片免费 | 黄色不打码视频 | 美女黄页在线观看 | 国产免费高清视频 | a v在线视频 | 男人在线天堂 | 免费看国产片在线观看 | 在线的av | 波多野结衣在线观看一区二区三区 | 中文字幕一区日韩 | 亚洲大胆人体 | 亚洲国产精品视频在线 | 国产情侣激情 | 国产人成一区二区三区影院 | 伊人视频在线观看 | 欧美日本三级 | 国模无码国产精品视频 | 亚洲国产精品久久久久 | 亚洲一区二区高清视频 | 成人福利小视频 | 少妇无码av无码专区在线观看 | 国产精品久久久久久久久久妞妞 | 99热这里只有精品5 国产精品伦子伦免费视频 精品一二三 | 久久网站免费观看 | 欧美另类日韩 | 亚洲制服一区 | 少妇高潮喷水在线观看 | 91精品在线免费 | 精品在线视频一区二区 | 久久网伊人 | 亚洲图色在线 | 亚洲精品aaaa | 999精品在线视频 | 操操操日日日 | 国产精品人人做人人爽人人添 | www.五月天婷婷.com | 成人免费毛片嘿嘿连载视频 | 夜夜狠狠 | 婷婷综合久久 | 久草免费资源站 | 亚洲婷婷丁香 | 波多野吉衣av | 亚洲免费视 | www超碰| 国产精品2019 | 高潮网 | 香蕉二区| 美女无遮挡网站 | 国产精品无码内射 | 僵尸艳谈 | 国产亚洲网站 | 久操色| 最新91在线 | 首尔之春在线观看 | 日韩一区二区三区电影 | 在线免费看污网站 | 婷婷中文网 | 久久深夜 | 国产精品成人网站 | 1024福利| 国产内射老熟女aaaa∵ | 国产色影院 | 大黄一级片 | 免费无码一区二区三区 | 午夜视频免费观看 | 同性色老头性xxxx老头 | 欧美国产日韩综合 | 国产精品免费电影 | 激情涩涩 | 国产农村妇女毛片精品久久麻豆 | 人人干人人干 | av东方在线 | 中文人妻熟女乱又乱精品 | 青青草视频在线看 | 国产稀缺精品盗摄盗拍 | 免费在线观看不卡av | 成人精品一区二区三区视频 | 99ri国产精品 | 精品久久网 | 美女在线免费视频 |