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资源,账单户,分享户,国内一手
TK加白户/二解户/FB海外户/GG老户海外CL企业户源头FB虚拟卡⚡️消费越多返现越多FB广告Spy工具⚡免费试用✅
FB个号1块一个TikTok2审户/老户/国内外端口/加白GG,FB,TK, 欧美源头, 欢迎合作❤️FB企业户海外户,授信户,TK加白户
联盟收款/海外资金下发/服贸结汇域名防红⚠斗篷工具/可试用3天广告位出租8500万高质量住宅IP,助力各种需求
虚拟卡返佣1%,国内持牌机构   
查看: 10303|回复: 7

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

[复制链接]

6

主题

303

广告币

310

积分

初级会员

Rank: 2

积分
310
发表于 2018-8-28 13:34:29 | 显示全部楼层 |阅读模式
本帖最后由 xiaoxue 于 2021-3-10 09:21 编辑
3 S6 a% B2 i  ?2 ~8 u! k1 S
5 N( S: m' V8 {1 q6 N
, P5 ?& _( g6 T

  1. 0 U' h3 Z( c8 B/ C( y
  2. # -*- coding: utf-8 -*-
    * O9 ]. L; c/ p
  3. * O+ h- N, L0 S* H
  4. from aip import AipOcr
    % `9 R0 R" F3 g* ?; U9 C

  5. * o6 s1 ]" W/ `* n1 H, X( J
  6. from selenium import webdriver+ {3 T& k/ a, k0 [# [. o8 n
  7.   M& s" I3 ~- z7 N1 x0 P3 y# q
  8. import time
    # f! P: `' r3 R
  9. ( B8 G  |% O+ }
  10. import random7 _- r. t/ n  \2 \1 b
  11. ! z/ g5 T7 i2 `7 A
  12. import sys,re2 n* H" ]0 I% i  M# x1 ?9 j- }
  13. . m$ z7 L$ o9 M' V$ K& Y4 h
  14. from PIL import Image, ImageDraw,ImageFont
    + t, L0 x  |' a9 m5 s9 k2 [
  15. & w. l' }0 P. `
  16. """ 你的 APPID AK SK """2 }9 z: `; U' ^

  17. ( \) ?! P# p! B- x0 L8 @
  18. APP_ID = 'xxx'9 L( f( _' n# H2 E
  19. 5 [" D$ s! f9 V6 L
  20. API_KEY = 'xxx'0 t% B  P$ o/ u5 v
  21. ( Y7 }3 q$ [9 M" N4 t9 G! e1 U8 j- Q
  22. SECRET_KEY = xxx'" M1 n! i# i$ L
  23. . X0 W$ u2 O- v
  24. client = AipOcr(APP_ID, API_KEY, SECRET_KEY)5 j( R& j  _5 ?- p: l# |1 {0 U

  25.   C/ ]: ?# w! w, a) q
  26. #PROXY = "127.0.0.1:8118"+ Q* K/ v: |& d7 x3 E: S$ H8 i
  27. / c" `# }: u& f8 L. ~( f/ b
  28. chrome_options = webdriver.ChromeOptions()
    ; L" F# T+ P' A

  29. 9 g* N  E/ S/ ^+ X1 s) w
  30. chrome_options.add_argument('--headless')
    + }4 a$ b) |' O9 F) I6 d% i% O
  31. , r; \) `$ y! y/ @; Y
  32. chrome_options.add_argument('--disable-gpu')$ |* m$ L9 U0 Z- |

  33. . ^0 ]* o4 b2 S0 G( w2 o
  34. #chrome_options.add_argument('--proxy-server=%s' % PROXY)
    ; ]3 f' z* E7 L' A$ d
  35. : O9 B7 U- N- \
  36. chrome_options.add_argument("--incognito")
    . I7 q6 R% m' ^& V7 c5 H

  37. 1 v7 Q# v" o% h/ [- y
  38. chrome_options.add_argument('--ignore-certificate-errors')3 @! \4 e' d0 I

  39. 4 O5 r/ ?- `+ g% `" I# t( K0 W
  40. # Win0 @  M% c1 Y4 t( ]" I2 p. I' r! Y

  41. # d7 e& O% p9 U
  42. # chrome_options.add_argument("--log-level=3")
    8 j; l8 L5 W* A$ h" I& [3 Y$ x
  43. ( y, b* ]3 u" O1 U0 _
  44. # chrome_options.add_argument("--disable-logging")
      E: b3 Q+ p- r; g
  45. $ j" q( z2 d* d; x, g4 |
  46. # chrome_options.add_argument("--disable-logging")
      \2 @8 o' c; a" f" X* G/ t. M' {
  47. & E6 ~4 l9 R) L: u
  48. #chrome_options.add_argument('--no-sandbox'): q4 J  t3 m8 m1 F  N
  49. 4 G1 ]( @! l* E/ |: V4 h
  50. """ 读取图片 """" z  `5 }5 M. g
  51. ) C5 r+ L8 ]2 `- P
  52. def get_file_content(filePath):
    " J2 T$ @/ r) K7 }" B: ]

  53. 7 w/ P, s! ?7 @4 r& A- X4 D
  54. with open(filePath, 'rb') as fp:
    , l4 v7 ?. z. q5 Q' [
  55.   y5 |' s2 B( b! u' V5 y% V
  56. return fp.read(), O9 H/ k: T0 c4 b4 t% p

  57.   m+ g9 s6 Z2 W$ J/ f) |
  58. driver = webdriver.Chrome('~/chromedriver',chrome_options=chrome_options)
      _7 ^8 s/ |8 z' e
  59. 2 H0 f) x6 e3 K' s, H9 X& r
  60. driver.set_window_size(1280, 727)
    . P+ h( C5 ?/ z3 x0 A; u
  61. - H! {# x: m& L. D; U" C" p
  62. driver.get("https://youlikehits.com/")) B6 h. ^3 U" ]0 O
  63. 1 v6 B$ X; |, g" p
  64. time.sleep(5)
    3 I" m- f( p9 N$ r
  65. " `. _1 M8 k: r) E1 C
  66. driver.find_element_by_id("username").send_keys('11111') #user1 F8 U, I4 g2 l# F/ Y

  67. / z/ n6 ^8 r/ m& z5 W$ Y) Q
  68. driver.find_element_by_id("password").send_keys('111111') #password
    , t0 ~# t, K6 {: K$ A; W
  69. 9 W/ m0 P/ u% o, X& {2 [/ p
  70. driver.find_element_by_xpath("//input[@value='Login']").click()
    0 h) @6 l. c% {8 K' V$ f  h

  71. ! B  n& f1 p0 Q& L, m  z
  72. driver.get("https://youlikehits.com/youtubenew2.php")+ g/ B$ T7 H" e8 O
  73. 5 r: z  A! N2 h, f
  74. time.sleep(1)
    9 ?, ]6 d' X  Q

  75. ) Q. g* o3 ]/ ?- ]% m& i
  76. #Try Again
    : j: U* L% Q7 }% c. d
  77. ) _3 c4 v3 F4 K2 }7 P3 a) z9 W
  78. def checkRefresh(driver):
    ( v1 A: l! O! Z* a, w1 X) z- f
  79. , z1 \* ?  w. S2 d
  80.         try:& Y% m  F  a1 Y% d. \
  81. 6 i- @) j* k* ~1 U
  82.                 Refresh = driver.find_element_by_id('loadmore')# p9 s/ V- S* ^7 s
  83. 8 c$ j2 F" `; M4 J$ h5 M- }4 g- @
  84.                 Refresh.click()
    : [3 F& L5 A; m) ]" F# }8 P
  85. # j0 M) j& a- ~
  86.                 driver.set_window_size(1280, 727)$ H' C% F: N+ A  U7 G5 b2 q6 O

  87. 1 ]! H3 \4 O# C! G' T, V; T4 Z
  88.         except Exception as e:
    8 Z. `* {5 H8 e  @6 f4 \( `

  89. $ {" \8 ~, ]+ p! K  K% b8 D
  90.                 pass
    4 z3 t8 Y; P# V( W% |$ y. s* g6 |
  91. 8 u, v, E$ |7 V5 J
  92. def checkcaptcha(driver):
    # D- p0 c2 X8 s. c" n% ~" w9 F$ N* @

  93. ! \  M- G, i9 i( w& j- V: H
  94.         try:
    ' t8 J3 j4 G5 S" c

  95. : g7 g( s+ u' v- n, r0 }
  96.                 captcha = driver.find_element_by_id('captcha'), U4 j/ c$ Y; L. i" s* y2 H
  97. ' P( s$ R3 g  w& t% t4 X
  98.                 print driver.get_window_size()7 \6 M. U- P' [* }/ x9 `8 t

  99. " P! @0 }* i$ H; R0 Y3 N
  100.                 time.sleep(2); h9 H, B3 a/ X; Y) a/ [/ x+ n

  101. : E+ ?+ ^- n+ _: ^. v/ J+ S2 n0 i
  102.                 driver.save_screenshot('/tmp/screenshot.png')
    & A- P+ F  Q- e) e- F  e* j  F

  103. 4 `# F# ?! @& d% K. b( w4 k
  104.                 im = Image.open('/tmp/screenshot.png')( B: H: z; Y; }( |8 m& M% T3 S
  105. + w4 V) c/ U* N  c; ^- w
  106.                 #取消headless模式
    0 @5 {& x8 y4 e5 M

  107. & m$ K( z2 t( b- K' z% O) D6 H3 x8 Y9 Z
  108.                 #a = im.resize((1269, 610),Image.ANTIALIAS)* M# l' S1 f) o+ E, s/ i

  109. . Z& D& m$ B: c. M
  110.                
    8 ]" j; D/ ~( B# e2 B; o3 a

  111. / P9 g2 I0 D5 W& B. A
  112.                 #开启headless模式: V/ r. _" P- p6 n& `! R+ j% i
  113. ! c$ i' f' i/ n+ g$ h; O8 T$ ?8 `* b
  114.                 a = im.resize((1269, 727),Image.ANTIALIAS): a! \2 R; G. d2 P- n0 g

  115. . T' p: q* [% B4 N/ z
  116.                 element = driver.find_element_by_xpath("//div['#captcha']//img[@src='captchayt.php']")
    0 w/ w! E: T9 P
  117. % Z" _' A5 g% N2 f! E
  118.                 left = element.location['x']
    6 v; J$ s) P; }1 b/ z
  119. ! D4 |9 k* L2 O, R4 g
  120.                 top = element.location['y']' L7 m5 F+ e9 R# U

  121. % ?" h' S/ v; W& J1 T9 [% M3 E
  122.                 right = element.location['x'] + element.size['width']* x2 s' o  U, r8 u. p( B- ~
  123. ( Z3 P+ h" \( j
  124.                 bottom = element.location['y'] + element.size['height']! ?2 U  Z) B  t& u2 b+ M

  125. ' t3 l+ W0 o0 d' p- J3 ~% k
  126.                 7 V8 l) p8 `( ]* }0 R$ w) \7 g8 `
  127. 8 A/ j- y' \3 O& \
  128.                 #element = driver.find_element_by_xpath("//div['#captcha']//img")
    ' G5 X. q+ a5 Y1 `( {% O6 o
  129. # L$ _9 F0 g  o! X4 z
  130.                 #driver.find_element_by_xpath("//div['#captcha']//img[@src='captchayt.php']").get_attribute("src")+ W* G& v. s+ W1 K

  131. 5 O$ {) {. B- [) _0 P: O9 f
  132.                 element = driver.find_element_by_xpath("//div['#captcha']//img[@src='captchayt.php']")8 |- s/ f9 d+ I( q' A; n8 C

  133. & ^2 O  m' j# c1 Y  G
  134.                 a.crop((left, top, right, bottom)).save('/tmp/screenshot1.png')" e( p; c. W! L/ b6 @/ F. j

  135. ; _, G6 C9 z& [- v$ V
  136.                 image = get_file_content('/tmp/screenshot1.png')6 c1 L1 h/ ?+ @) _
  137. , k$ b% D& l# b3 B: [2 g
  138.                 a = client.basicGeneral(image)3 x! s! i: r$ }# v. W# o

  139. ) m$ M8 l: e8 p2 i" r1 Z
  140.                 print a
    - H5 c, v- ~: E. r
  141. ; e4 n9 ~8 r6 U5 A
  142.                 yzm = re.sub(r'\xd7',r'*',a['words_result'][0]['words'])* z) ]9 e1 i2 D4 D0 \* F+ r
  143. # ^9 r9 U7 }$ Z+ z) x
  144.                 yzm = re.sub(r'\xf7',r'/',yzm)! u- }( k/ L$ V6 T; f7 ?! c
  145. % p5 C% [. r# ?
  146.                 yzm = re.sub(r'x',r'*',yzm)# _( t4 U4 i8 X8 \4 F2 D1 I& \

  147. & m% M6 r& X9 e" `* V; c' c: A
  148.                 yzm = re.sub(r'X',r'*',yzm)
    . v! m# l) y3 p

  149. $ ]9 @" {( E( _2 v+ z
  150.                 yzm = eval(yzm)9 i0 k: |" V* l# ^
  151. " E& `1 ]. K9 ^0 H6 p1 y8 J( V
  152.                 #yzm = eval(yzm.replace('x','*').replace('÷','/'))
    5 _+ w2 k1 h( A3 U6 c% k
  153. & [0 q. W3 @# d& e$ g' ], H) b9 _4 T
  154.                 print '验证码: ' + str(yzm)4 X/ m: D+ ?! ^- m4 r
  155. 0 G( {; M& d- t1 X, m- S
  156.                 driver.find_element_by_name('answer').send_keys(yzm)
    2 G' X6 C8 }) P. n6 R/ A0 T: S
  157. 9 W, Z/ H: \7 x
  158.                 driver.find_element_by_name('submit').click()
    2 a" b" \( \9 E! b) k+ Q- b+ `% t; p
  159. # b( O! |" L, g
  160.                 time.sleep(3)
    2 D* ?4 E5 m% l; D* t/ `5 V

  161. 3 D. ^: G- E& S
  162.                 return 1
      G7 P! Q3 [# v- t
  163. 2 r  r, ^5 p, Y+ v3 @7 p5 e- Y
  164.         except Exception as e:% B5 X0 N4 h9 x! z
  165. 2 M7 ~; ]; a1 F9 B2 W
  166.                 return 0
    & W+ v. h4 @9 E) f  `; V) h

  167. 6 H: Y2 d1 c, i1 q: C+ N( r* n0 H+ E
  168. def followbutton(driver):
    8 v: E3 \9 {+ q3 O: Y

  169. 4 B3 t7 C) w/ b6 L: k7 X" |" g
  170.         try:
    + r! a- e: S6 W

  171. , a$ K' W* [, Q! W7 ^1 F
  172.                 driver.switch_to_window(driver.window_handles[0])' L' E+ D; b6 }9 b9 U

  173. / P6 K: J% ^7 D0 q
  174.                 points = driver.find_element_by_id("currentpoints").text
    7 V" u7 W& q: f4 Q: E4 G6 ]2 l
  175. 0 i) U3 T  x8 r: F( a3 \
  176.                 driver.execute_script('return document.querySelector("a[class=followbutton]")').click()
    7 y  `0 j) q+ b
  177. & F( V9 U' o0 Y
  178.                 driver.switch_to_window(driver.window_handles[1])6 M0 H* j2 v+ ~' u* E, a) U" D8 g

  179. 5 P' P1 _! C0 J1 x/ j
  180.                 VideoSource = ''.join(driver.page_source.split())5 n- ~" k7 C* N/ Q/ D: s5 e, C

  181. / `& P: l5 H& y+ L. l; C- R
  182.                 if VideoSource.find("This") < 100 and VideoSource.find("This") >= 0:
    ! c( c7 p( i# \- \+ O6 Z2 n
  183. , T& E- P' h3 Z% O: x: W
  184.                         print VideoSource
    0 F9 X! i% m: w0 i4 h

  185. , t2 g& |3 u7 J, Q3 R
  186.                         driver.switch_to_window(driver.window_handles[0])
    , n- m7 n6 v* X* E

  187. & O4 ^7 y# }( j! a: M) a  d
  188.                         print "Refresh..."
    2 M& p- U' ^4 K; @+ A9 Y

  189. 3 G/ e- O* G" r+ T: `+ ]7 R4 _
  190.                         driver.get("https://youlikehits.com/youtubenew2.php")5 n& J* C: |# Y

  191. 6 `" ]  z2 y& Y/ c
  192.                         time.sleep(1)0 l1 b6 R7 {9 a9 A; g6 u
  193. / U$ {8 w/ e, L/ ^
  194.                 return points
    4 ^+ |% w3 q- H6 l

  195. : x! f, H" V$ p+ |( Z
  196.         except Exception as e:, b# k5 c  A- _% ?% a0 E5 _
  197. 0 o' j( b2 U' S1 q) k
  198.                 return 0
    ; Q- R$ i$ {. f* K7 q

  199.   t0 i! r8 n" e5 H" r' [
  200. for i in range(0,5000):
    + l4 z5 N/ b6 H" Q1 h2 F" F" H

  201. / c7 ?1 ~! `1 u# o
  202.         try:9 _" {; W$ h/ P6 q5 _& g; o" u
  203. ' }: T& `% \% N6 F5 J4 Y6 j( K
  204.                 captcha = checkcaptcha(driver)
    , N4 @4 j( }/ @2 Z, X
  205. $ S+ _: y  ?" h: g& V
  206.                 time.sleep(1)
    . P$ N5 Q& L" ]4 S& k$ `; f

  207. 3 p4 E+ g4 b8 q( O) l7 ?: o
  208.                 checkRefresh(driver)8 w. l- F$ g+ A) p5 y( J6 ~2 q
  209. * _+ H! V, Q) |! i) s
  210.                 points = followbutton(driver)
    4 X* N- S# V4 \5 l
  211. . ?! z6 {: @) f  I
  212.                 time.sleep(65)9 P; X0 l3 o  f4 R  y
  213. & d4 \! S% n9 T. ^' v& V
  214.                 driver.switch_to_window(driver.window_handles[0])
    8 }8 t% X3 y& r4 @: b
  215. & r  S5 U( ^0 x
  216.                 tmpp = driver.find_element_by_id("currentpoints").text8 i4 A# _) T8 V+ F8 R
  217. $ z3 I  L$ ?" y8 l3 A
  218.                 print "points: " + str(tmpp)+ T" l  t4 A6 Z5 O- a. K! B
  219.   c+ O' k" i( n5 f( u  j
  220.                 if points == tmpp:
    ( U6 p( F. s1 h
  221. 2 J6 f. l) u$ |5 O7 @9 C7 a* O
  222.                         print "Refresh..."
    / }. g& K8 K' [, V2 n$ }  y
  223. 5 I: ?6 V( m% G8 W; p6 m+ H
  224.                         driver.get("https://youlikehits.com/youtubenew2.php")
    ! j9 n& T) o; b( A

  225.   P$ i; d% A$ `* f8 ]4 `
  226.                         time.sleep(5)
    $ t7 i: Z' T( _  S+ ~  Z

  227. 2 b2 f7 y2 Y/ V# N1 Y3 z
  228.         except Exception as e:. o8 @9 \+ l' y
  229. : O: @( E8 s. v! e
  230.                 driver.get("https://youlikehits.com/youtubenew2.php")5 V! V' f! a( r) R8 R) H% b& o9 G7 [, ^
  231. $ Z& ~/ y9 J& o
  232.                 print 'error: ' + str(e)* d) a( S/ T& D$ h$ G

  233. 0 r3 U" a# I* b3 h0 ^: o
  234. driver.quit()
    , V4 `2 ]6 K/ @+ \* l$ `3 @
复制代码
2 g& R: i8 s0 ~# N2 ~

- b8 }) Z9 _7 c8 S
0 U3 f* Z. t' |2 y5 `& i 因为headless ,可以挂在vps上跑。。 百度识别验证码正确率还是满高的。
/ `- ]) v! O8 w3 B
$ E: C3 w) }9 q2 |/ x" t3 O7 P

评分

参与人数 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! D6 n/ m  E, ^, [3 S/ C5 A& B% W
用的是selenium库啊,我最近也写了一个小爬虫也用了selenium+pywin32模拟点击

1 H! Q) d7 h1 H% w* U  l8 d% @小批量的还可以,多了实在是舍不得cpu。 并发也是个问题。卡卡的 娱乐还可以。个人观点。。哈哈
4 M3 }2 N  V. ^0 {. u% E8 H5 k" O  ?5 c# o- y
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-5-29 06:30 , Processed in 0.051940 second(s), 15 queries , Gzip On, MemCache On.

Copyright © 2001-2023, AdvertCN

Proudly Operating in Hong Kong.

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