weqiL6H{W$P1v}c@e@1
z!VQmpFGUXOgh+Fk*kGO`sPN#S7B^Veq-YUt!CH%hWM7oGe0=v>I0k{*XIl4^jHJF-@blN1F#MY(iPKbSiyJ4yi{#d42YLy)p)A%u34xDfMT
zK8(`1iaG&LCyZPMpvp=5j{#1*X}a;$#yCft7`~(>)Y7rn3kIPtZ&df4ISTq8yAp%}
z9*%ob*+g*_)!gWCt
Io7mrJ2@RjE64u!abz1W#H}Icz
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
F|JffFSfc;{
literal 0
HcmV?d00001
diff --git a/block.jpg b/block.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..3ecb75d1ac71346f4f12042a2910104d3ed7b6e9
GIT binary patch
literal 3978
zcmd51PF;Pq!hnO55QsYoNikNZ;BdJW0h#1Nt
zlT31oQW>X0&Xr?koMvOp{&w$oecwON_s4f#&p+?I*Iw7&*IMiT-RoZWX~AFM5kS)6
zu>D~`KmY&)kOzPV0Bc~Az;F89Z~9F_g1>uVAt6B_lrReQ?^i@j6eS`ifR(T~0TNL205iU!#eoow}kXT##eHgDe{C$FHf
zM|1B!EdxU%V-r&|Ya83cc1P?TTwHN(_>=A)L?2&2|8oI>;TIwG(10}%cM=Tl0(0wiMFY2ax|+VFSp
zsf<=6of1EJyiK=>_3qK`Bq{f=U*d5m>;Zfd*cbvfY++8$V|=&r(7b~%&{_lo2}3Xt
zrwDcqU1?W_2#`Mvq&maEme(*KWCR2GbsL!&Hk17c26pB16{Gp0K`>w!xxN=11xIQ8
zLv}nPE>CiRpR%}e90uOPKqH11l?nyTL#j0!Nhv0Zol4YmfzEF!j%HMEa{vY@)C;y#`_C$AHRr8yJqV4&dubE1BF
zctvv%oWd1EU*gH$%^TmS
zV@}Lk;Fl_3fF&NqS<{|GcD!c?@6NYV{HFEP4XsLgFmk{ZV7m@8AY|Pb2IRr1lm%wy
z*0}8#=X4qNawaMx3S62ZIozq19XMF$_$t^e3jfhk=do
zKOK|?%MRMt{20hdytPw-egXP;h3YO7JcZYl4EdJQQ*{>SE}-@#@J4e0l_yrBbsq+r
z7~qCL$+{Q)BWB<|->I<~bX49@si7<9)u$qg^9I{4_b_L%FA@EgIIM-N3_$zFnElw5
z1JJ8=GqR#{c~vhDWH%DnL#YuZ4xIkRh|7go(zXws`HZGrI31i)T-=`(BQStw%E7=$
zCV`Fn^ySs)b($Ri(3QsAeXKfkp>}me@uWi8J$l()nTrd9j^SZBxSpoomCja)_+LKB
z-q=j@rx7A?Y}BY6&u4wxBjvF#Ou>+}xgz>0$Z-
z@{zi^J&GyIP9yV5e`PoyzI!OTC*dW9h1MHpKP$zz9tda}bi7cJCn@&|5V2fdYHipG
zsT=cT!IjUDD!K^~URIHRCa3=}
zI7j#)I*Yr?XJ{{`t}MVnMmdMTYK4I#x-+el^n7H?*@Oi`M9BKKUznw0R{dNaQ;<0_
zl?rL}#ajxJqAu}dm@9#7@u{egn=v;1V9T8OkrcNoPp6-#_nr%CvH8^p+n*13IP
z2T!{jwd6!T2Hz=SCELt5b@>o$OZVROwGACqQ2vz@hwm4cVm-yGDDU5=rYe$+wR-bx
ztJI7RWq`1Yx-JU?s9dl?(_#mQcA^^*tB_Dx)7a8I%QGC)=;Di=oaQ)GcN7iy43Tne
z(nNp7-1X3ocF%H`)=os*C;P>Tsqtec|864;Ogu(5hQubeWbw_}yPmF)-h){uCxr7D
z*V8=YU8Plc`q|#!I2{6t%mm&1IA(CMo!iZ#SUrfOT>#coy8TZL(bL4
zIOj^XJ3%UFX(byQM#V2$lUqD4h)8
zKMa{6PV_LwqLbcSc-3-OpvOdj!BfL;%l%(k+8+y%6TT`@6UG;xok!{GA0ediHDhc!
z#?4HnX@ZmmK}WYJFkB@2)LUr--0?&ThEY_UuU;XZZm)h{K|3FEVVATp<#_=iBUphc
zFre<`YC-y+ZrUfU1fEc@noEW0huW)aCHUbmHso!5vGB3gWkJoR;Uo{=(r4i|HfA#V
zr|m5wEzizViIUa8<^do1vkttMA?0<49tL>HetuS`_t1THyIIhEx9a1Ow}wvZJ+$%s
zU~h69Wv@P-LAb?aUsUGFxL9Yri8AI%FOCe~I!}-2AURj{)$28Qn>p^e{baxZ?-BgK
zgmmfTcSh|(2&yeF*Q9buCqcVO7rGQQT6^X;?vX``NvZ6Ocge)@0=;@pF;`PXA#b*T
zD~LT(H=&msei{Z6mjWnyUm_<-Ts(h^B%;kb5D5o)KLZ=~*B>DFw!9~>f8~dl@>Hr{
z-&M_U>)P*es?-h}>n0@aNc!uim(rrW#ce`cm5`ege&tn@8Hzeqx|!RkutB2{pSr&%
zMT=y=|6#pbCSvfh6jj|v@-W$uGoOMu$Q?`cwd2w;`VjSrr$?K?3Xo}?=P#WPbcMYT9ShDom7)ihr|BhmYH4Y5xg%QSlW6t8mH;P
zlnrdxZ<6XSJ3Uq5H6RnASlzdOC0CUll5}BSfsFBDb}m2I;e73QXI1i^1xM0r%LRF%
zv_UHaTd#f2J?@^OzABPdvRwM?It+*){@idH^rKzZ<5_S-5@Q58rUu!#^D$N&^Ttbf
zv*)LpLuBkjG&+*!3j4txc?qt#ZetzGAj8rXy{t*N57yk_J-9*PXJOW?LcB1xmz9xf
z4k^yk*Gs@JG{oTx+^BQIY&Z0(?VUMY7(lY~IC?{G2){sI$Gk~T%)$u~O)w5?`G-G0
zQ)M6RIyJz1yF1MMFM?5w2LZ}9RZHvnu~6aPFiS4-oyP@ZJ@eDFs!_AiJu{-+#FXWH
z1)5Hp>FyUXe-IbqsPanWvTZHToZ_QIfc~~OFmR!dYyD4TtXj9&Zxd;GEoaRGyEA}+
zkJl()l+A9jmL^XT4)XAv2x{}9%$YDJr$aLzC;HAvgoycpF7czZ{2m_C|FOM(bJ7Iu*6upXO)NCYimDg|qUf*Cq_$&-$x?f=puY~aR
zVW3OtJE&H_3F;eF7I)Wi93ugc{2q?Ta%qR%N;Z39B~_H;89QjEI|e34-k{WLO+{UA
z9_tMn(8TCWgQel0#$WAj+Nj?){}ZVd!+l&+YZ_qy6t>|Xd|?U$N!LLx+l9!9r_dmN
z>a>sYxSKbpnR4cVgYr70<;PjRDFL4Qy}%CYCbqgoFGL(c&fnA4x(v!c+Fco)ZOfCG
z3m$bnqVLqz>cRgt^Z!lb|8tf3dro{!Trq$~M`>4w&6ig2KnVs0AIq
qq@oT< o; o += 3)
+ s += a[e.charCodeAt(o) >> 2],
+ s += a[((3 & e.charCodeAt(o)) << 4) + (e.charCodeAt(o + 1) >> 4)],
+ s += a[((15 & e.charCodeAt(o + 1)) << 2) + (e.charCodeAt(o + 2) >> 6)],
+ s += a[63 & e.charCodeAt(o + 2)];
+ return i % 3 && (o = i - i % 3,
+ s += a[e.charCodeAt(o) >> 2],
+ i % 3 == 2 ? (s += a[((3 & e.charCodeAt(o)) << 4) + (e.charCodeAt(o + 1) >> 4)],
+ s += a[(15 & e.charCodeAt(o + 1)) << 2],
+ s += t) : (s += a[(3 & e.charCodeAt(o)) << 4],
+ s += t + t)),
+ s
+ };
+ return o(e)
+ }
+ """
+ encipher = js2py.eval_js(js_code)
+
+ chapter_id = get_id(1)
+
+ dataLimit = encipher(chapter_id)
+
+ print(dataLimit)
+
+ res = requests.get(f'{BASE_URL}getPartContentByCodeTable/988681/{chapter_num},headers=HEADERS)')
+
+ text = res.text
+
+ text = json.loads(text)
+
+ text = text['data']['content']
+
+ html = etree.HTML(text)
+
+ texts = html.xpath(f'//p[not(constains(@data-limit,"{dataLimit}"))]/text()')
+
+ for txt in texts:
+ print(txt)
\ No newline at end of file
diff --git a/login.py b/login.py
new file mode 100644
index 0000000..f834578
--- /dev/null
+++ b/login.py
@@ -0,0 +1,196 @@
+import random
+
+from selenium import webdriver
+from selenium.webdriver import ActionChains
+from selenium.webdriver.common.by import By
+from selenium.webdriver.support.ui import WebDriverWait
+from selenium.webdriver.support import expected_conditions as EC
+import time
+import cv2
+import pytesseract
+import requests
+import os
+import numpy as np
+from io import BytesIO
+from PIL import Image
+from selenium.webdriver import ChromeOptions
+driver = webdriver.Chrome()
+
+# 打开登录页面
+driver.get('https://www.tadu.com/v3/loginpage?logintype=taduphone')
+# 等待账号输入框可见
+
+# 去除浏览器识别
+option = ChromeOptions()
+#隐藏浏览器
+option.add_argument('--headlless')
+option.add_argument('--disable-gpu')
+
+
+def get_tracks(distance):
+ distance += 20
+ v = 0
+ t = 0.2
+ forward_tracks = []
+ current = 0
+ mid = distance * 3 / 5
+ while current < distance:
+ if current < mid:
+ a = 2
+ else:
+ a = -3
+ s = v * t + 0.5 * a * (t ** 2)
+ v = v + a * t
+ current += s
+ forward_tracks.append(round(s))
+
+ back_tracks = [-3, -3, -2, -2, -2, -2, -2, -1, -1, -1]
+ return {'forward_tracks': forward_tracks, 'back_tracks': back_tracks}
+
+
+def crack_slider(tracks):
+ wait = WebDriverWait(driver, 5)
+
+ slider = wait.until(EC.element_to_be_clickable((By.CLASS_NAME, 'tc-drag-thumb')))
+ ActionChains(driver).click_and_hold(slider).perform() # 模拟按住鼠标左键
+
+ for track in tracks['forward_tracks']:
+ ActionChains(driver).move_by_offset(xoffset=track, yoffset=0).perform()
+
+ time.sleep(0.5)
+ for back_tracks in tracks['back_tracks']:
+ ActionChains(driver).move_by_offset(xoffset=back_tracks, yoffset=0).perform()
+ print("1212313")
+ ActionChains(driver).move_by_offset(xoffset=-4, yoffset=0).perform()
+ ActionChains(driver).move_by_offset(xoffset=4, yoffset=0).perform()
+ time.sleep(0.5)
+
+ ActionChains(driver).release().perform() # 释放左键
+ return 0
+
+
+# 下载图片到本地
+def get_image(img_url,imgname):
+ # 以流的形式下载文件
+ image=requests.get(img_url,stream=True)
+ imgName = ''.join(["./", imgname])
+ with open(imgName, 'wb') as f:
+ for chunk in image.iter_content(chunk_size=1024): # 循环写入 chunk_size:每次下载的数据大小
+ if chunk:
+ f.write(chunk)
+ f.flush()
+ f.close()
+
+def get_image_offset(background_image_url, slider_image_url):
+ back_image = 'back_image.png' # 背景图像命名
+
+ slider_image = 'slider_image.png' # 滑块图像命名
+
+ get_image(background_image_url, back_image)
+
+ get_image(slider_image_url, slider_image)
+
+ # 获取图片并灰度化
+ block = cv2.imread(slider_image, 0)
+
+ template = cv2.imread(back_image, 0)
+
+ w, h = block.shape[::-1]
+ # print(w, h)
+ # 二值化后图片名称
+ block_name = 'block.jpg'
+ template_name = 'template.jpg'
+ # 保存二值化后的图片
+ cv2.imwrite(block_name, block)
+
+ cv2.imwrite(template_name, template)
+
+ block = cv2.imread(block_name)
+
+ block = cv2.cvtColor(block, cv2.COLOR_RGB2GRAY)
+
+ block = abs(255 - block)
+
+ cv2.imwrite(block_name, block)
+
+ block = cv2.imread(block_name)
+
+ template = cv2.imread(template_name)
+
+ # 获取偏移量
+ # 模板匹配,查找block在template中的位置,返回result是一个矩阵,是每个点的匹配结果
+ result = cv2.matchTemplate(block, template, cv2.TM_CCOEFF_NORMED)
+
+ x, y = np.unravel_index(result.argmax(), result.shape)
+
+ print(x, y)
+ # 由于获取到的验证码图片像素与实际的像素有差(实际:280*158 原图:680*390),故对获取到的坐标进行处理
+ offset = y * (295 / 680)
+
+ # 画矩形圈出匹配的区域
+ # 参数解释:1.原图 2.矩阵的左上点坐标 3.矩阵的右下点坐标 4.画线对应的rgb颜色 5.线的宽度
+ cv2.rectangle(template, (y, x), (y + w, x + h), (7, 249, 151), 2)
+
+ show(template)
+
+ return offset
+# 显示图片
+def show(name):
+
+ cv2.imshow('Show', name)
+
+ cv2.waitKey(0)
+
+ cv2.destroyAllWindows()
+
+# 实现规避检测
+option.add_experimental_option('excludeSwitches', ['enable-automation'])
+option.add_experimental_option("detach", True)
+# 采取去除特征识别,即以下两行代码。
+script = 'Object.defineProperty(navigator, "webdriver", {get: () => false,});'
+driver.execute_script(script)
+
+js = 'return window.navigator.webdriver'
+print(driver.execute_script(js)) # 可以直接在终端输出webdriver检测结果
+
+
+option.add_experimental_option('excludeSwitches', ['enable-automation'])
+option.add_experimental_option("detach", True)
+
+account_switch=WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, 'phoneAccountSwitch')))
+account_switch.click()
+
+username_input = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CLASS_NAME, 'accountInput')))
+password_input = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CLASS_NAME, 'accountPass')))
+
+username_input.send_keys('td188310339') # 用户名
+password_input.send_keys('Aa123456') # 密码
+
+submit = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CLASS_NAME, 'accountLogin_bt')))
+submit.click()
+
+frame=WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, 'tcaptcha_iframe')))
+driver.switch_to.frame(frame)
+time.sleep(10)
+
+img=WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, 'slideBg')))
+image_url = img.get_attribute('src') # 图片的URL
+
+img2=WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, 'slideBlock')))
+image2_url = img2.get_attribute('src') # 图片的URL
+
+x=get_image_offset(image_url,image2_url)
+print(x)
+
+drag_button =WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, 'tcaptcha_drag_thumb')))
+
+ActionChains(driver).click_and_hold(drag_button).perform()
+time.sleep(0.5)
+# 遍历轨迹进行滑动
+time.sleep(0.01)
+crack_slider(get_tracks(x))
+
+time.sleep(2)
+cookies = driver.get_cookies()
+cookies=''.join([f'{cookie["name"]}={cookie["value"]};' for cookie in cookies])
+print(cookies)
diff --git a/slider_image.png b/slider_image.png
new file mode 100644
index 0000000000000000000000000000000000000000..68e096a3805d85fb442d69f492304ab2ac372f3f
GIT binary patch
literal 5530
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
jd%W}7!S?_8G0H>77flDkL^ZSi_dT_6iF_1T~{~
literal 0
HcmV?d00001
diff --git a/template.jpg b/template.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..cc921e97ae30cd1b93d2e73b193b68bb197fdbfd
GIT binary patch
literal 32139
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