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充值
各种主页、账单户、BM户(优势)⚡️TikTok企业户,bm户,账单户IPCola原生住宅IP⚡️$1.8/条双ISPFB海外户、GG老户、TK加白老户
PTM虚拟卡[全新卡BIN+高返点]FB虚拟卡⚡️消费越多返现越多高品质·稳定高速纯净IP FB个号1块一个
TikTok2审户/老户/国内外端口/加白SX.ORG 高质量代理⚡235+ 地区GG,FB,TK, 欧美源头, 欢迎合作跨境债务催收/风险代理
高权重Google老户[卖户+筛户等级] 海外斗篷・智能广告过审率高达 99%DataImpulse⚡️纯净住宅代理仅 $1广告位出租
8500万高质量住宅IP,助力各种需求虚拟卡返佣1%,国内持牌机构  
查看: 10255|回复: 7

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

[复制链接]

6

主题

303

广告币

310

积分

初级会员

Rank: 2

积分
310
发表于 2018-8-28 13:34:29 | 显示全部楼层 |阅读模式
HuiTong虚拟卡
本帖最后由 xiaoxue 于 2021-3-10 09:21 编辑 7 N7 J( r2 X* u3 S0 |2 n; L' n/ e

7 W2 V8 ~8 r, N8 O% X5 [. h) Y. w+ r' C
  1. 4 ]+ B) L* h' C* h0 i( y* z: I
  2. # -*- coding: utf-8 -*-
    0 Z) z% v" I1 \% }; y
  3. 0 ]8 V" m, r& A# L  P, i  ?. R
  4. from aip import AipOcr' a" Z) M9 ]  c
  5. 4 o, b& e9 L$ D; G. F( m
  6. from selenium import webdriver3 a" J* t4 K: \

  7. 5 U4 Z, P+ k6 t
  8. import time
    ' _2 C4 S1 ~! [% [: q5 x
  9. & z- T( G# K: E; H
  10. import random
    : r) o7 B1 p% P( w% G; W' H
  11. # M2 }0 ^. }4 ~( z1 i
  12. import sys,re
    : X2 F9 K) M6 P" A/ l
  13. 0 ]6 i( l8 `) l- \" I$ N) f
  14. from PIL import Image, ImageDraw,ImageFont
    1 M, f( b. M2 G% h

  15. ) {% T4 o  @9 m
  16. """ 你的 APPID AK SK """. q8 e. E/ ^* y, k% [. t$ T
  17. ' D- G* V* M: Z- B0 \: E7 q
  18. APP_ID = 'xxx'
    0 b2 w* {6 P: m( D! X1 ]$ F
  19. / I* {2 ]9 J5 y& n5 ?  c
  20. API_KEY = 'xxx'- x8 D) K5 V' }5 h$ D' R& a
  21. 8 a7 ^* E. j1 I
  22. SECRET_KEY = xxx'
    * f! I$ @" q% l- w3 p9 V
  23. ; V% N' l5 H  M2 @9 c" E
  24. client = AipOcr(APP_ID, API_KEY, SECRET_KEY)
    4 p$ @1 a! w/ f: @

  25. 7 Y& z7 W6 M: q3 }2 R
  26. #PROXY = "127.0.0.1:8118"
    4 P" p9 Z# i4 q' j: Y( J: P0 U" Z

  27. + h" J- F3 h$ u6 d+ C8 v! @6 Y4 c
  28. chrome_options = webdriver.ChromeOptions()# s- v( \7 F1 l1 H3 x) a* i/ a& U8 k

  29. ! S& r" i- N+ \+ g; y/ j
  30. chrome_options.add_argument('--headless')9 A8 d/ @# d. ]! }( x7 |) f

  31. . v7 F9 D/ d; H, b9 b( r  \
  32. chrome_options.add_argument('--disable-gpu')
    2 I/ h" v- N) F1 `* q) s
  33. : I9 l8 P' A/ w. d1 _2 z4 `
  34. #chrome_options.add_argument('--proxy-server=%s' % PROXY)+ i" a$ D% W% V7 g. j" m. J  _
  35. # n5 @4 l  ]8 t* Y6 q! P) e/ R& q
  36. chrome_options.add_argument("--incognito")
    ' u- w0 h: `" [$ u# g+ r

  37. " P# {4 m& B* g* W) }
  38. chrome_options.add_argument('--ignore-certificate-errors')
    : q% |, n8 _$ C: d
  39.   ]$ M& j; P( M& f
  40. # Win
    9 s# I! l! I* I, y

  41. $ T/ k- t' i3 Z# d% W  q9 X6 X
  42. # chrome_options.add_argument("--log-level=3")4 _9 q4 x2 Q9 L3 T' l# B# s
  43. 4 E+ j- F; _( }) y# U- Y; I- N
  44. # chrome_options.add_argument("--disable-logging")
    ' ^9 P& M, U8 S. z" f" v# @. f

  45. $ V* E9 o# L2 v' h& E1 o% }* r
  46. # chrome_options.add_argument("--disable-logging")
    8 M) x  u: g7 Y; K; c
  47. ' a) a! H/ E3 c) D/ ~
  48. #chrome_options.add_argument('--no-sandbox')+ k. F& N% |* s" X$ c

  49. 0 _; u* X/ o0 A% D$ w
  50. """ 读取图片 """# n! h% b" v% s  K
  51. ( O! ~) X3 x/ I1 ^9 E
  52. def get_file_content(filePath):- x2 `  l: d% m- ^) V' P' X

  53. & V. i+ ]1 w9 D5 U
  54. with open(filePath, 'rb') as fp:
    + I# {+ l* \2 J
  55. 7 S' Z  h/ y4 {$ P; r8 E! R7 S8 V
  56. return fp.read()
    " e# ]* F9 k: _. ^) J/ |, _
  57. $ H  k5 K3 J  }) h* \
  58. driver = webdriver.Chrome('~/chromedriver',chrome_options=chrome_options)- K& E- a* Z1 e
  59. ( v" A: m. D7 |# P; d2 E
  60. driver.set_window_size(1280, 727)1 y# H) d: t3 h6 M" `  H

  61. 4 z7 w3 H- S, c  j; z
  62. driver.get("https://youlikehits.com/")4 m% s$ K) {2 N9 U( ~

  63. 0 K. {3 Q) I5 H, y8 c" m6 O( c3 M/ d) P
  64. time.sleep(5)
    8 u0 h8 D4 A1 ~( i
  65. ' ~0 e. a1 T! _% N) ]+ `9 G
  66. driver.find_element_by_id("username").send_keys('11111') #user
    ( J  @7 j# _( f7 `5 k4 A8 X' t
  67. 7 Q# g) P* M; x  |2 E# n  g3 B
  68. driver.find_element_by_id("password").send_keys('111111') #password, F1 [0 {. n  E" d) Y0 S1 r
  69.   I5 ~! r! [- S3 K; y# v
  70. driver.find_element_by_xpath("//input[@value='Login']").click()
    6 V. H, G) v+ {# W

  71. 4 N  J8 `! x& Y& s
  72. driver.get("https://youlikehits.com/youtubenew2.php")
    4 z4 B% o2 s7 U& o- C
  73. & o0 j, A# P# R$ E  X
  74. time.sleep(1)' U  O9 D( ]: h7 G% e

  75. ) N* M! x5 T% ]  T- d, I! T
  76. #Try Again
    8 H* T' Q5 A* x8 s) H# k4 a
  77. ; }5 J2 b0 p" H* @! p+ {
  78. def checkRefresh(driver):9 Z+ u% p5 t  K1 o* J% M
  79. * d$ `  I" D9 Z; ~- O% T7 s2 W
  80.         try:$ b5 @7 c7 s2 R2 u* i& J2 ^

  81. ! Y! E" X/ Z  `* N4 {
  82.                 Refresh = driver.find_element_by_id('loadmore')3 R# _- @' f8 T/ `5 ^
  83. 8 e+ q, i  l- b5 Q; M
  84.                 Refresh.click()
    , M8 G" w# _; F( G' N; |( }
  85. - i) J+ a  I& F9 R0 o1 V5 |1 ]
  86.                 driver.set_window_size(1280, 727)# C# k( }, u5 S
  87. ; \' }. H* o5 D$ S
  88.         except Exception as e:, Q  b, K5 F/ H3 v' p

  89. 6 ~. ~) ], k1 f* l/ g+ b
  90.                 pass
    1 H' v( y* w, {3 E( n7 A8 m# r) p

  91. 5 G6 a% e) E$ e0 V6 B: y' h
  92. def checkcaptcha(driver):! [* k) y8 j7 A# \3 p
  93. . L3 k7 r; t0 d2 w
  94.         try:, Y: {8 ?( K# r& V: |! M. Y: D

  95. + C6 m% R% M) P0 H. k" p
  96.                 captcha = driver.find_element_by_id('captcha')
    % u2 B3 b. d+ b5 u; Q4 }) Y

  97. & g, g# `3 h8 o% U1 c: m2 V. e
  98.                 print driver.get_window_size()
    % g+ `$ ^: t6 f3 J8 d3 c

  99. $ M# e5 V+ V: `$ m9 a, T( e$ f
  100.                 time.sleep(2)( k- Y7 @" H! `# S% m

  101. ) G9 n: ^; _2 K0 l  v3 s  D8 f. e8 t
  102.                 driver.save_screenshot('/tmp/screenshot.png')
    5 E7 J% `" b# d7 [

  103. # _8 A) n, x/ K6 j( T
  104.                 im = Image.open('/tmp/screenshot.png')
    . V3 q9 Z+ m$ a; x1 d+ a9 w1 D" K

  105. ! p1 `; n  ?  ^: l
  106.                 #取消headless模式
    1 b4 s- n( t4 I

  107. 4 t' Z. c  H' o; w8 q: l6 ]% Z, c
  108.                 #a = im.resize((1269, 610),Image.ANTIALIAS)- V& ]5 O2 C! s9 B# u* `
  109.   w7 t8 B% G! D
  110.                
    - r: T' x+ I% ~% }+ H# C+ \

  111. 5 |  ]2 r' J# `$ V9 l* \' t% \
  112.                 #开启headless模式7 r6 `: Z: v2 x  I
  113. 3 K9 |) {6 l+ N" M0 V
  114.                 a = im.resize((1269, 727),Image.ANTIALIAS)
    ! A( v; o. f9 Z; l/ J

  115. 9 j" ~5 L5 l+ B/ y+ g5 Q
  116.                 element = driver.find_element_by_xpath("//div['#captcha']//img[@src='captchayt.php']")
    6 ?) U) ~5 k+ r9 I' ^
  117. $ U9 B. N( @2 V4 w
  118.                 left = element.location['x']* j5 P: M3 A9 o2 |9 ^, }9 s
  119. / n' W, i+ J( ^1 L7 L  }; c
  120.                 top = element.location['y'], A: K/ P% g+ i0 X$ x, _3 D: |
  121. # I% c9 R+ `$ w7 m5 z
  122.                 right = element.location['x'] + element.size['width']0 N8 F& ]6 D" K& f

  123. 2 K% s5 x; A5 e) k: S9 @) \! I
  124.                 bottom = element.location['y'] + element.size['height']* K0 m1 c: J" [3 v0 m
  125. ; h% ^, \' k* ~; O. X
  126.                 / T0 n: Y3 |6 q3 F5 r6 _

  127. * ?5 o4 B& T3 K/ I! f
  128.                 #element = driver.find_element_by_xpath("//div['#captcha']//img")
    ; a' u& R; Y: g; |

  129. 4 ^) s4 |) n8 H; k4 l' [, m0 a
  130.                 #driver.find_element_by_xpath("//div['#captcha']//img[@src='captchayt.php']").get_attribute("src")
    8 A& \' Z6 A# N( N, L
  131. ' a  p( c; u( u% b& O" h
  132.                 element = driver.find_element_by_xpath("//div['#captcha']//img[@src='captchayt.php']")
    8 k. g' m4 \8 I" v' a8 A1 z7 r

  133. 5 @7 u; y; ~4 Z; E" X( M/ K
  134.                 a.crop((left, top, right, bottom)).save('/tmp/screenshot1.png')
    + A2 a" a0 Z2 _% z( h) d6 C4 B
  135. 0 g1 b' T- a4 N9 o; [. _5 y
  136.                 image = get_file_content('/tmp/screenshot1.png')
    - w6 O, |1 Q! v) I0 A5 _! N

  137. 3 k  h( H. Y. a! t
  138.                 a = client.basicGeneral(image)% g5 v! d% B& t
  139. 5 i/ K  D9 u5 `3 b& Y8 h
  140.                 print a
    + r" Z0 y$ r8 Q4 ~: B9 @2 x- D1 i6 d

  141. 6 Y. J' s- M" }, W+ u& t" }5 K
  142.                 yzm = re.sub(r'\xd7',r'*',a['words_result'][0]['words'])( o1 X/ Q9 E1 e4 k$ N, h4 E

  143. 6 K5 v4 v, v# K' F: i, S8 ?
  144.                 yzm = re.sub(r'\xf7',r'/',yzm)
    . w% Z/ {+ R: m$ t( N, w" t8 g- G
  145. + k. L& J. Q4 h$ D1 d0 U; f
  146.                 yzm = re.sub(r'x',r'*',yzm)
    . e1 |- ?. k- x6 V; k
  147. . d6 H3 X4 @" i- D4 d$ C# W: v
  148.                 yzm = re.sub(r'X',r'*',yzm)6 @6 s6 d4 {2 w: G; o
  149. 3 t5 S( x! T( f
  150.                 yzm = eval(yzm)
    / `4 p. o6 `. y; o. a
  151. ' m4 q/ m4 V; |% W6 z9 j
  152.                 #yzm = eval(yzm.replace('x','*').replace('÷','/'))6 ~/ e6 ~0 J0 B4 g' O  m, e4 [% n0 x
  153. " L( j( L2 a/ m3 [6 c
  154.                 print '验证码: ' + str(yzm)! @7 `; Y: }# {) b8 Z/ P( p
  155. , g* U% O1 z7 J
  156.                 driver.find_element_by_name('answer').send_keys(yzm)$ c  Y9 P) }" K6 M

  157. - v* X/ ?! t: l5 ]( {
  158.                 driver.find_element_by_name('submit').click()
    9 {9 K9 c' l) H. Z2 Q" k( e  c
  159. ; B5 ^, B& a, x9 }
  160.                 time.sleep(3)& h+ G" L/ r4 u6 F
  161. ) y' C5 X3 `4 k( i2 |0 ~
  162.                 return 1: E, q7 ^. m  f
  163. 7 g" r8 H; J9 |! y/ @$ S
  164.         except Exception as e:/ W9 q! B7 L% _- [
  165. - j; x3 _, A4 t: \
  166.                 return 0
    / ?# _% S8 h: p1 c7 D+ p

  167. 8 @0 j- e3 B4 O8 c) p
  168. def followbutton(driver):3 H: x' r& E& n9 S

  169. 0 C8 O  T6 B, |, J  J8 U# F* K
  170.         try:) {/ w2 H. g- S
  171. 6 M% Q% f- V; k$ k& |7 |
  172.                 driver.switch_to_window(driver.window_handles[0])8 q; N2 P/ h5 p  }" `0 g

  173. / B1 }( A# O) I: P- a
  174.                 points = driver.find_element_by_id("currentpoints").text- ?" F  j) Q4 q' ]' p: P* q- q
  175. * x( g. u/ X  L% Z
  176.                 driver.execute_script('return document.querySelector("a[class=followbutton]")').click()5 B4 ?+ D' f4 Z

  177. ! b$ D' `* K1 I
  178.                 driver.switch_to_window(driver.window_handles[1])& S! j6 L& ~9 Y

  179. % q; U1 X" `( K* C% t0 |* R
  180.                 VideoSource = ''.join(driver.page_source.split())
    ' q0 y: d& j/ I7 V5 X1 W& t3 N$ _
  181. & E/ E  K8 S5 e9 L
  182.                 if VideoSource.find("This") < 100 and VideoSource.find("This") >= 0:
    ; S. r0 x/ c$ g0 z% a
  183. * q! |1 m; E( w5 B( o, r5 K# e
  184.                         print VideoSource
    ) e7 v% M& {1 P. F% c; }
  185. 8 M  L' S8 D! i
  186.                         driver.switch_to_window(driver.window_handles[0])- g9 f3 W/ u) ]7 i& s4 M
  187. , ^3 l' C. s% t. ~5 R$ A( Z8 Z
  188.                         print "Refresh..."
    & u6 k) D# I$ e! Z

  189. + Q; b  p4 s6 e5 q- e* T! ~% _
  190.                         driver.get("https://youlikehits.com/youtubenew2.php")
    5 z& V( b5 [; R+ L6 h4 W7 b" w
  191. 0 [$ h, t3 g" T$ t
  192.                         time.sleep(1)& N( X3 g. }0 T8 \
  193. 2 ^3 G& H# C4 @1 A6 K3 g" f: L
  194.                 return points$ o4 T/ Y2 ^( E$ C8 x

  195. 0 T8 g1 w& Y* v7 x0 Z
  196.         except Exception as e:
    ) ]% d0 z& N: o1 M

  197. & j& L# L& B) q9 ~8 {6 X% Y8 d
  198.                 return 0
    , p5 \6 p- L! p, A4 w- C3 t$ n

  199. 1 a- R; V; B: u( ]6 O
  200. for i in range(0,5000):% Y9 p" K; Y" Z' q
  201. 9 v! ^/ ^, n; D" u- B! W
  202.         try:5 ~0 F+ ]: W5 e3 j$ z2 x& S9 x# D

  203. 3 K) V. [& d* q& _; u1 g6 u: `+ ]
  204.                 captcha = checkcaptcha(driver)
    # q5 }. y+ W8 J# u- @

  205. % |( r+ \0 f; b4 r7 `
  206.                 time.sleep(1)
    7 q! _4 v/ ]9 u1 F, {) t; Y% |
  207. 2 n' W% z/ W7 h# z% @$ @# H% g
  208.                 checkRefresh(driver)
    $ ~3 f! _* L8 Z2 {$ z0 }/ Q

  209. * V8 K  O0 }, c5 E- Q
  210.                 points = followbutton(driver)/ U% c3 w/ V6 F* R% [, e
  211. 7 `# U* z0 ?2 m0 e) j# D( z, R
  212.                 time.sleep(65)
    9 Y' @% Z3 Q1 u3 e& i6 I$ y" b
  213. % F8 Q; `+ t' D; ^
  214.                 driver.switch_to_window(driver.window_handles[0])% M* d- d9 X* C

  215. 7 b" q+ i5 w& V8 r
  216.                 tmpp = driver.find_element_by_id("currentpoints").text0 z, T0 x# i' ]' @4 z; u9 x

  217. 4 G4 \$ i4 [. E! ~
  218.                 print "points: " + str(tmpp)2 e6 N0 F+ P. F& k' k
  219. ( O! m$ r; \* J/ W. _+ m
  220.                 if points == tmpp:# O* x$ L# k, X" B2 e. e2 z1 W
  221. 3 r* e  H% F7 l4 ]. U! W0 |4 x& j( |
  222.                         print "Refresh..."
    . L+ d8 p9 n8 w; l$ e& J

  223. $ t6 B$ E1 O/ q$ f7 c3 L
  224.                         driver.get("https://youlikehits.com/youtubenew2.php")
    , a' b/ c  @7 u
  225. $ V; H6 _# S$ B+ f% K1 S/ N% i
  226.                         time.sleep(5)
    1 P8 @; x: T7 `5 K& m2 z
  227. 9 S" O( G* T1 E2 b
  228.         except Exception as e:
      G0 Q  S" n$ F; D3 M' I
  229. 1 Z% P7 B- h3 T- s* A8 ]
  230.                 driver.get("https://youlikehits.com/youtubenew2.php")1 G6 k! c0 N3 @1 O- B7 ^8 s

  231. : _; }& [: O+ w/ O/ [- k
  232.                 print 'error: ' + str(e)# ^. ~3 e7 q6 i; L8 A; L

  233. , Q: y5 ^% w: i0 N! r4 a6 }# a
  234. driver.quit()
    8 H' h9 x( K7 X1 b. f7 q
复制代码

& Y4 A. C# z6 m8 ?) O* |
+ ^% @/ Z, ~) h0 C* b4 I5 @" g! y+ V( F% Y9 \
因为headless ,可以挂在vps上跑。。 百度识别验证码正确率还是满高的。 ! v" k$ f, F* N/ l1 r" H' ~
, J4 T+ x# e0 n( R/ V2 b

评分

参与人数 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

主题

1015

广告币

1511

积分

高级会员

Rank: 4

积分
1511

社区QQ达人

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

使用道具 举报

176

主题

1184

广告币

4243

积分

超级版主

Rank: 8Rank: 8

积分
4243

社区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
1 W( g7 x4 ]$ J0 W9 \& ]用的是selenium库啊,我最近也写了一个小爬虫也用了selenium+pywin32模拟点击
1 V. `$ o# n! h7 s/ a* O6 h) s
小批量的还可以,多了实在是舍不得cpu。 并发也是个问题。卡卡的 娱乐还可以。个人观点。。哈哈) R* u1 W; M* ?, ^" Z

2 V* q9 I8 I/ {; N# _0 I$ \, ?. S
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-23 21:25 , Processed in 0.064270 second(s), 19 queries , Gzip On, MemCache On.

Copyright © 2001-2023, AdvertCN

Proudly Operating in Hong Kong.

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