AdvertCN - 广告中国

 找回密码
 立即注册

QQ登录

只需一步,快速开始

PropellerAds
Google-Bing-Mediago-Criteo开户
⚡️按条S5代理⚡️静态⚡️独享⚡️5G广告专用虚拟卡/U充值/高返点皇家代理IP⚡️#1性价比⚡️
Mediabuy⚡️玩家开户首选【鲁班跨境通-自助充值转账】FB/GG/TT❤️官方免费开户Affiliate 全媒体流量资源⚡️
Taboola/Outbrain /Bing⚡️一级代理开户投流-7*24h❤️人工在线【官方】❤️搜索套利买量投流开户独立站⚡️开户投放
⚡️AdsPower:安全不封号,高效自动化Google FB TK游戏代投⚡️E.PN 虚拟卡⚡️BINOM TRACKER 60% OFF!
比Adplexity还好用的Spy工具ADPLEXITY + ADVERTCN7200W全球动态不重复住宅IP代理虚拟信用卡+独立站收款
全球虚拟卡, 支持U充值Facebook 批量上广告尤里改 - FB 稳定投放免费黑五教程(持续更新、欢迎交流)
FB 三不限源头 - 自助下户充值转款各种主页、账单户、BM户(优势)IPCola原生住宅IP⚡️$1.8/条双ISPFB海外户、GG老户、TK加白老户
海外CL企业户源头FB虚拟卡⚡️消费越多返现越多最大欧洲Nutra网盟BA找量 FB个号1块一个
TikTok2审户/老户/国内外端口/加白GG,FB,TK, 欧美源头, 欢迎合作❤️跨境债务催收/风险代理Proxy4Free独家住宅IP池❤️免费测试
联盟收款/海外资金下发/服贸结汇域名防红⚠斗篷工具/可试用3天广告位出租8500万高质量住宅IP,助力各种需求
虚拟卡返佣1%,国内持牌机构   
查看: 10287|回复: 7

模拟点击 验证码识别 全后台 youtube订阅

[复制链接]

6

主题

303

广告币

310

积分

初级会员

Rank: 2

积分
310
发表于 2018-8-28 13:34:29 | 显示全部楼层 |阅读模式
PTMLink
本帖最后由 xiaoxue 于 2021-3-10 09:21 编辑 , _7 a( h& c( Y9 y! d

7 J* ], {, f- z* [. |4 |
" g* Q) q. L9 ]

  1. ! s& e4 F. I; t- T, J- y6 N1 r
  2. # -*- coding: utf-8 -*-
    8 `/ k- F1 ]" v

  3. ; x' J* p, h5 E. t
  4. from aip import AipOcr
    0 S- ^! V' y" i$ k. E0 n' u, O* M

  5. % }. y5 U0 r) |+ U: i) t
  6. from selenium import webdriver) w9 d  S5 ?9 o& K
  7. - N8 k* _( |+ v1 Q! I
  8. import time
    + a7 B1 g: L4 g: b3 `

  9.   N# z  Q( {5 H) z
  10. import random
    & y4 K9 X$ ^( u  ]" K" K+ q
  11. 8 o4 i  ~5 a2 X9 _4 R" T( n5 ]: i  k
  12. import sys,re
    7 i' i5 I- P7 k8 @
  13. 2 a. }. O' ?8 Q# ]0 z
  14. from PIL import Image, ImageDraw,ImageFont9 |* O+ `; K; G. j! Q

  15. % L1 p8 p. o0 d8 ~! z( U
  16. """ 你的 APPID AK SK """
    * k3 k. u; x  J
  17. - R( H' f  [1 c$ ]
  18. APP_ID = 'xxx': T. @/ u* F' D% O! |# @4 _3 U

  19. - s% g) n( B4 P  x
  20. API_KEY = 'xxx'; Z' y" R/ y& T- z7 S1 V

  21. % T7 S+ I8 D! w! s% M
  22. SECRET_KEY = xxx'
    / a/ c2 h8 x. |  ~
  23. ; D( ^! j6 k2 Y- m
  24. client = AipOcr(APP_ID, API_KEY, SECRET_KEY)
    % J) K" h3 l) I9 z  Z
  25. ' h4 o7 u  ]( n- n
  26. #PROXY = "127.0.0.1:8118"& T; L$ O2 x5 A7 r( j
  27. # X' _! |9 {& i( l; x
  28. chrome_options = webdriver.ChromeOptions()
    9 `1 B4 Y( n# ]6 Q( ]5 Q) C5 K

  29. 5 p+ m0 s  d5 r3 x
  30. chrome_options.add_argument('--headless')* n9 i8 J7 L3 G. X6 R$ L% K+ Z- H

  31. , w" l- y3 A& _1 x+ a
  32. chrome_options.add_argument('--disable-gpu')* ]3 U7 E  @7 U- L4 }
  33. ! }4 Z9 @# q5 P" Q, ~  [& u
  34. #chrome_options.add_argument('--proxy-server=%s' % PROXY): u1 d# |0 C8 b. P, b

  35. 7 Z" T& F* o& }+ @6 x: R, U
  36. chrome_options.add_argument("--incognito")
    0 u3 z% c3 B% j) a- i

  37. * c* p1 |* \+ j1 }5 ~1 K
  38. chrome_options.add_argument('--ignore-certificate-errors')) j% T0 G  ?$ R( h

  39. 5 ^3 X) }$ A; R3 G/ x
  40. # Win9 y( T8 u- Q* B. {( S4 C& z& e$ ^

  41. 1 g9 v5 B# T. t8 l$ H
  42. # chrome_options.add_argument("--log-level=3"): U7 A. Q3 Y. x
  43. " i: y. d- {% F; S4 C
  44. # chrome_options.add_argument("--disable-logging")4 ]4 ~2 r8 A7 Q/ J

  45.   o& D7 I6 e" F# ?" w! K
  46. # chrome_options.add_argument("--disable-logging")
    ! F1 y9 t- B" R. p3 k

  47. : f( X, p  ~* Q& M
  48. #chrome_options.add_argument('--no-sandbox')8 Y& [" x7 L' n. V

  49. . }2 a: b1 @3 g7 M, A
  50. """ 读取图片 """1 g; z- S" y, y) v% x

  51. ; ?9 ~& W  V4 \+ p3 P( a5 f& M  A/ t
  52. def get_file_content(filePath):
    . O  o$ y  Q) s- S
  53. : L1 y! B9 N7 D; Y6 h
  54. with open(filePath, 'rb') as fp:5 \) z: @4 f) ^& a; K/ C
  55. ! I  d. m( a6 B1 Y5 @" ]3 {
  56. return fp.read()# b, t2 l1 T6 K+ R3 w
  57. ! @9 e& ]% T6 Z0 d7 ~# e
  58. driver = webdriver.Chrome('~/chromedriver',chrome_options=chrome_options)
    7 p& p' @7 {$ Q% c5 z: Y
  59. : c. W; l# O  P+ Q, _% v0 P
  60. driver.set_window_size(1280, 727)& b- r$ }! V/ B7 g) L4 m

  61. ) s' ^5 r1 I8 u# f! D% o
  62. driver.get("https://youlikehits.com/")
    ( Q( |: _: l# y% n$ ]* a- s

  63. 0 l5 B) W9 n! `% i8 A- I# H  x
  64. time.sleep(5)1 v- p: r" k5 P: j  V2 b* {

  65. # \9 u9 ~- W3 [2 g8 K. d
  66. driver.find_element_by_id("username").send_keys('11111') #user7 k, I9 t9 k& [1 M3 `

  67. " s$ {  y2 m4 y. `, ?
  68. driver.find_element_by_id("password").send_keys('111111') #password
    3 o$ ]. ]  p1 S$ z+ l4 i
  69. 2 s; B' V) I3 F/ n# W$ x3 b- S. ]
  70. driver.find_element_by_xpath("//input[@value='Login']").click()
    $ f* |0 s- c3 t! b  X

  71. - a. N" L0 V- A* d% n
  72. driver.get("https://youlikehits.com/youtubenew2.php")
    ; h  {3 x2 U/ l- z" i2 n; `

  73. ( o+ b7 b7 U* G8 a$ x0 ?
  74. time.sleep(1)
    ; v! L1 g  X( V" D

  75. % {- ]3 p' p& [3 Z% C+ `) G
  76. #Try Again+ G, s0 r: I; k# }8 @

  77. $ P% |2 T4 {5 Y8 o6 r; x8 o; H
  78. def checkRefresh(driver):3 o; l9 q/ n6 u% i' u

  79. 3 \, ]2 a2 t7 p2 z* V6 o# w/ U
  80.         try:# p; z. }" |1 O5 @$ w% E: O
  81. , }2 p* }& J8 m! s& `
  82.                 Refresh = driver.find_element_by_id('loadmore')
    $ Q9 ~' q9 z" s; A; x  k

  83. * Z6 F6 s* e% k, B. D  p
  84.                 Refresh.click()+ Y, W) ^5 b2 I8 S% J

  85. 2 C0 N) m7 q6 S+ n
  86.                 driver.set_window_size(1280, 727)
    $ P/ [3 n+ m8 \
  87. : [9 E' F$ M3 w" e+ ]9 R) ], j
  88.         except Exception as e:
    4 h+ u* a  F# u4 C- ^9 o
  89. 0 [, B# P' {, K7 ]0 \
  90.                 pass
    5 D9 M2 c) O9 k- _& k% ~) H
  91. % }# q4 [6 }5 Z; k
  92. def checkcaptcha(driver):. o; z6 j$ D( N- Z% w

  93. 9 a: U( h  z. c" c
  94.         try:
    ) k4 v2 }9 x- }- P1 C; K
  95. 4 R& s; Y( Y/ }* y0 F: m
  96.                 captcha = driver.find_element_by_id('captcha')# ~5 e, O, [9 d* O

  97.   g. H( ^5 [2 q2 D, W9 W4 w. N
  98.                 print driver.get_window_size()9 s' V* C/ o3 p2 M3 E( r. E
  99. % p3 p* v4 [/ d
  100.                 time.sleep(2)
    ' K. I1 a. k: @$ j* C
  101. ; e  ]1 M. V2 i: M9 h7 f. a9 m2 R' h
  102.                 driver.save_screenshot('/tmp/screenshot.png')6 F% Q2 j: i+ m! C9 \

  103. ) j; l3 q: `* [) y" e  d8 ^, s
  104.                 im = Image.open('/tmp/screenshot.png')
    ) \2 D' @2 p" N( F# ]
  105. * O) O! f" b* {9 R/ ~
  106.                 #取消headless模式
    6 f  e' b  i, t. T, Q1 N
  107. % e) I! a/ g+ G) M2 d
  108.                 #a = im.resize((1269, 610),Image.ANTIALIAS)
    ; [) o3 A; }+ W/ ~; J
  109.   @, i4 x% ^. n/ ~9 p8 J
  110.                
    7 B% v$ x. T8 F( ~3 P$ L0 I
  111. ) Z1 ^" D1 v9 j+ J8 @9 w
  112.                 #开启headless模式
    , Z  }' \# R0 v& e! H7 g& K4 J
  113. # C! R% T! k4 x" z2 N8 R" W2 M
  114.                 a = im.resize((1269, 727),Image.ANTIALIAS)
    % u' d; d! ]7 @! D2 v

  115. # g# i/ ^6 o7 F$ p/ {( Y
  116.                 element = driver.find_element_by_xpath("//div['#captcha']//img[@src='captchayt.php']")
    . u$ s# ]8 n: U. x9 w

  117. 4 M# Q, G7 j8 c/ E
  118.                 left = element.location['x']0 n! \; @: e, s9 Q7 I2 [6 X- V
  119. & T+ B% \/ i0 N, {; ?( w7 T% W
  120.                 top = element.location['y']
    , q) b2 M1 X# B
  121. 1 k2 I, K  z+ t
  122.                 right = element.location['x'] + element.size['width']- p+ F5 D# F  P1 q* t; F* i+ L

  123. % v" p# H; K- u5 o
  124.                 bottom = element.location['y'] + element.size['height']; T3 V1 R, g9 _# J" k% i

  125. 9 p* k; d, q" Q( _
  126.                 % T6 l& }$ D; R( F9 E
  127. # N% h2 z7 I/ i; L% o, Z  B: X
  128.                 #element = driver.find_element_by_xpath("//div['#captcha']//img")
    6 f2 p% F" G2 h7 H: ~2 ^+ `

  129. 6 ]* v2 B4 \. U7 B- h6 r/ o
  130.                 #driver.find_element_by_xpath("//div['#captcha']//img[@src='captchayt.php']").get_attribute("src")9 `; Z1 J: W$ r, ^3 \# t# B
  131. . R( R: j2 d7 ?" x4 B
  132.                 element = driver.find_element_by_xpath("//div['#captcha']//img[@src='captchayt.php']")
    5 G( M' p) ]! E: m
  133. ( O* X( X4 ^1 p7 w
  134.                 a.crop((left, top, right, bottom)).save('/tmp/screenshot1.png')) y4 L, v0 F- ^

  135. 5 w2 E- M2 _: Z0 t7 ]* V; H
  136.                 image = get_file_content('/tmp/screenshot1.png')
    + |3 v& S( C9 w' F& P

  137. 4 K& H& }0 `" J, Z2 `% Y! ^+ l
  138.                 a = client.basicGeneral(image)
    ! F" m3 D. t! Q- [

  139. 1 n* s2 @* f1 `8 {. v
  140.                 print a
    / }  M6 L* ~: Z. `% \3 a
  141. ( c+ H5 ^" P: @) g
  142.                 yzm = re.sub(r'\xd7',r'*',a['words_result'][0]['words'])1 |6 @2 c; z1 z8 k. p8 O& T# K+ y

  143. * b3 W! z" z7 E
  144.                 yzm = re.sub(r'\xf7',r'/',yzm)- x( `4 I# D4 b0 R9 Y4 W
  145. 1 P- W3 ?2 H7 k+ ~# s* [
  146.                 yzm = re.sub(r'x',r'*',yzm)
    ' g: C9 `' [' W7 {( @8 L( |) H4 B6 ~

  147. 6 W* c% n$ z. M
  148.                 yzm = re.sub(r'X',r'*',yzm)
    & g  h) s5 u' N1 S& Z+ o

  149.   |$ k0 H; |% |$ _( z) K/ O
  150.                 yzm = eval(yzm)% Q: ]* d1 s+ s3 b
  151.   T: W7 A& K2 f. \/ S
  152.                 #yzm = eval(yzm.replace('x','*').replace('÷','/'))" ^* L1 Z3 h3 `+ U" z! I% }( R
  153. . g. {: y$ }3 ?" M9 R  E
  154.                 print '验证码: ' + str(yzm)
    / V# h, }3 _) @* f6 A0 s
  155. 9 V. Z! t5 n, M% S  l
  156.                 driver.find_element_by_name('answer').send_keys(yzm)
    " w! Q. R5 @7 b0 U6 {& I
  157. ! j# J- E+ H% Z, O% |
  158.                 driver.find_element_by_name('submit').click()* M$ U1 H% V* F

  159. 9 s" J; N" T3 l1 o- F) y
  160.                 time.sleep(3)3 t" ^4 D- ]4 h' A1 k) a* T: ]

  161. % l8 w' k1 ~5 C$ J- A
  162.                 return 1  x0 j6 o- T  l/ ^% W" t

  163. : o$ {; y; V% p% F8 S
  164.         except Exception as e:1 l, K5 c7 c/ k' w( k' k# N

  165. ( m) d! @. b. t. Y
  166.                 return 02 T; b3 O* A) n  i% Q  c' F

  167. ) Y8 G# ?/ A* z6 a$ e
  168. def followbutton(driver):! ]: i- N: m7 O1 v5 v4 ^

  169. ' c/ u0 o% \4 Q
  170.         try:
    ) b" |9 X9 U6 j
  171. 9 G; U- A- \, V$ O+ V7 ^% @' G
  172.                 driver.switch_to_window(driver.window_handles[0])
    / O4 t) w2 i* j8 `& z$ D% U4 d
  173. + Z7 S% R3 }, g1 F' ?
  174.                 points = driver.find_element_by_id("currentpoints").text
      |  c# Q# @; |4 a8 h. W1 x

  175. 6 G% g+ `9 m- F. T5 Z( `# I
  176.                 driver.execute_script('return document.querySelector("a[class=followbutton]")').click()
    ) e. D0 |/ R' e" p
  177. ; h9 H! n; b$ |6 m
  178.                 driver.switch_to_window(driver.window_handles[1])& M9 d4 W8 C. F; ?4 w# w3 Y

  179. ' ^9 l: N( _  a
  180.                 VideoSource = ''.join(driver.page_source.split())9 J5 K! q/ \( q
  181. " D, ~8 m1 M% V+ J2 ]7 U. d  j! ^& P
  182.                 if VideoSource.find("This") < 100 and VideoSource.find("This") >= 0:: S+ ^: u# V- R/ ^5 w
  183. / Y% w. `* [6 v- e! y! V1 f/ k
  184.                         print VideoSource
    # A- C, [6 l7 x% i' p; n% X

  185.   G* x. N* Z  M7 `4 _
  186.                         driver.switch_to_window(driver.window_handles[0])# g9 s7 E) I0 x
  187. . M# d" u: k0 c8 Z: ^
  188.                         print "Refresh..."+ L+ j" a/ a0 x

  189. 3 p/ y* p" S" F) c  ?& O
  190.                         driver.get("https://youlikehits.com/youtubenew2.php")9 t5 S1 s8 P3 u  e" k/ R

  191. 9 p( W3 N, c) D/ e. k! g
  192.                         time.sleep(1)
    ) ]7 o% a! D- d' f4 O( \# y" d

  193. + P9 i3 R8 [. Z: h; U6 [4 x, S8 O
  194.                 return points
    9 R4 s. {4 d2 ^& y3 v

  195.   n) S1 x0 R6 M! s( `% M
  196.         except Exception as e:6 s) ^9 s, v9 R0 ^8 _  B6 n

  197. 8 M' t; K6 Y3 ]7 ~, m
  198.                 return 0
    8 [" A- x0 o/ a1 W: s

  199. ; o& i3 P3 ]1 J6 o4 f* z  h' z
  200. for i in range(0,5000):
    7 X# y. t0 b8 x9 Y: H; }1 Y

  201. 8 }& [* }" e/ r3 f
  202.         try:( r, v& a6 i" ~  B
  203. 4 R& N1 ]* B- E# ?$ T8 J1 g1 \
  204.                 captcha = checkcaptcha(driver); m: A6 d6 J) G' b* y
  205. + Z# a# W( k. o$ e% X( t3 d$ b
  206.                 time.sleep(1)& m' ?$ y9 m# m' H4 ^# Z( o: S; n
  207. 2 \& }4 m8 ?- }6 N4 O% G. U
  208.                 checkRefresh(driver)
    " s7 U; m1 a: W2 w( E' s( O
  209. : e# p# b' k$ }+ r
  210.                 points = followbutton(driver)
    % E' w9 W" k& p
  211. : Y4 i/ Y3 s  f
  212.                 time.sleep(65)
    ! l+ y* o( n, v( Q( f8 h! e7 v
  213. 8 ?: ~+ k- Y9 R- ~( P8 n
  214.                 driver.switch_to_window(driver.window_handles[0])
    5 a0 |3 B2 D6 R7 ]' w0 }

  215. # Q" r4 N/ d! j1 l
  216.                 tmpp = driver.find_element_by_id("currentpoints").text3 {1 t4 _  Y3 `" X6 m3 c) D
  217. 7 O% e, w) h4 g' h. c8 r
  218.                 print "points: " + str(tmpp)- N% K8 A0 W! b0 B3 g$ F( y

  219. & e$ s' [, P8 s; w0 \+ V
  220.                 if points == tmpp:$ w2 t$ a, }2 L- A/ N7 @
  221. # S' \4 d. A' H% x1 M# G
  222.                         print "Refresh..."
    * b4 H  c* K2 e+ z, Q
  223. $ g* w6 `( n2 z/ }  S
  224.                         driver.get("https://youlikehits.com/youtubenew2.php")! P) W! S. S8 n& s6 O  \
  225. ; {6 C# z  t: Z  z, m+ ^+ a2 X
  226.                         time.sleep(5)
    + s9 |3 b& C* z( H( Q+ K4 y

  227. & E5 e8 @6 j0 z4 t; t, d
  228.         except Exception as e:0 a- m* ^9 s1 @6 f

  229. ( J# e- S3 z- A1 F/ i$ @  ?1 O
  230.                 driver.get("https://youlikehits.com/youtubenew2.php")
    1 i! N* ?3 b4 R* t8 e

  231. $ o  [: H+ Y3 k" Z* P4 z* b6 k- B
  232.                 print 'error: ' + str(e)/ q8 p4 \5 X, e$ ~
  233. 7 W% Y0 _" p, b$ i- C0 {3 T6 v
  234. driver.quit()$ C& U* J' r" G) i( b* M- t
复制代码
4 g/ I( X3 X% n$ c3 u: {) y
/ ~/ C; p# l, n( _* g* l# a5 Q( b
# s5 y. c( u9 ^: j: J
因为headless ,可以挂在vps上跑。。 百度识别验证码正确率还是满高的。
0 d) I6 \& }3 J& c  _+ G# Z" I) _+ L, p& ~2 s9 i! a  t: T7 Q7 `5 f

评分

参与人数 1广告币 +20 收起 理由
小白龙 + 20

查看全部评分

相关帖子
回复

使用道具 举报

2

主题

25

广告币

80

积分

初级会员

Rank: 2

积分
80

社区QQ达人

发表于 2018-8-29 06:59:13 | 显示全部楼层
回复 支持 反对

使用道具 举报

1

主题

32

广告币

102

积分

初级会员

Rank: 2

积分
102

社区QQ达人

发表于 2018-8-30 10:17:14 | 显示全部楼层
跟我写的几乎一样,我也是百度验证码识别的,建议可以增加cookies保存和读取功能,省得每次都的输入,用户名和密码。他家是可以用cookies保持登录状态的。
回复 支持 反对

使用道具 举报

20

主题

36

广告币

255

积分

初级会员

Rank: 2

积分
255
发表于 2018-9-1 10:16:57 | 显示全部楼层
自动在https://youlikehits.com/ 点击么?
回复 支持 反对

使用道具 举报

2

主题

172

广告币

254

积分

初级会员

Rank: 2

积分
254

社区QQ达人

发表于 2018-9-1 20:51:05 来自手机 | 显示全部楼层
大佬太哇塞
回复 支持 反对

使用道具 举报

9

主题

1024

广告币

1521

积分

高级会员

Rank: 4

积分
1521

社区QQ达人

发表于 2018-10-11 00:42:08 | 显示全部楼层
自学了几天selenium能看懂一小部分了。
回复 支持 反对

使用道具 举报

176

主题

1191

广告币

4251

积分

超级版主

Rank: 8Rank: 8

积分
4251

社区QQ达人

发表于 2018-10-18 15:11:47 | 显示全部楼层
用的是selenium库啊,我最近也写了一个小爬虫也用了selenium+pywin32模拟点击

点评

小批量的还可以,多了实在是舍不得cpu。 并发也是个问题。卡卡的 娱乐还可以。个人观点。。哈哈  详情 回复 发表于 2018-10-19 21:57
缅怀骄阳
此ID(小白龙)仅限在论坛使用,其他平台发生的任何交易纠纷与本人无关,善用搜索远离骗子
回复 支持 反对

使用道具 举报

6

主题

303

广告币

310

积分

初级会员

Rank: 2

积分
310
 楼主| 发表于 2018-10-19 21:57:02 来自手机 | 显示全部楼层
小白龙 发表于 2018-10-18 15:11
7 v! b- J3 p4 }% d6 @用的是selenium库啊,我最近也写了一个小爬虫也用了selenium+pywin32模拟点击

$ D: K- N# @, W: e$ Q: F& [2 `6 z小批量的还可以,多了实在是舍不得cpu。 并发也是个问题。卡卡的 娱乐还可以。个人观点。。哈哈- i7 D% I5 g' R2 ^. l5 ?- G
4 g1 M  A0 {* @6 c
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于我们|联系我们|DMCA|广告服务|小黑屋|手机版|Archiver|Github|网站地图|AdvertCN

GMT+8, 2026-5-9 10:23 , Processed in 0.050875 second(s), 15 queries , Gzip On, MemCache On.

Copyright © 2001-2023, AdvertCN

Proudly Operating in Hong Kong.

快速回复 返回顶部 返回列表