AdvertCN - 广告中国

 找回密码
 立即注册

QQ登录

只需一步,快速开始

PropellerAds
Google-Bing-Mediago-Criteo开户
⚡️按条S5代理⚡️静态⚡️独享⚡️5G广告专用虚拟卡/U充值/高返点皇家代理IP⚡️#1性价比⚡️
Mediabuy⚡️玩家开户首选【鲁班跨境通-自助充值转账】FB/GG/TT❤️官方免费开户Affiliate 全媒体流量资源⚡️
Taboola/Outbrain /Bing⚡️一级代理开户投流-7*24h❤️人工在线【官方】❤️搜索套利买量投流开户独立站⚡️开户投放
⚡️AdsPower:安全不封号,高效自动化E.PN 虚拟卡FB BM不限额,短id账单户BINOM TRACKER 60% OFF!
比Adplexity还好用的Spy工具ADPLEXITY + ADVERTCN7200W全球动态不重复住宅IP代理虚拟信用卡+独立站收款
全球虚拟卡, 支持U充值Facebook 批量上广告尤里改 - FB 稳定投放免费黑五教程(持续更新、欢迎交流)
FB 三不限源头 - 自助下户充值转款各种主页、账单户、BM户(优势)⚡️TikTok企业户,bm户,账单户提供TK企业新户老户、谷歌新户老户
FB虚拟卡⚡️消费越多返现越多最大欧洲Nutra网盟BA找量优质住宅/移动代理/高匿名/高性能TK白名单老户|兼职广告可投
联盟收款/海外资金下发/服贸结汇⚡比特指纹浏览器+云手机, 4.5折起T3NZU:定义应用网盟新时代FB个人号源头服务商
寻找顶级电商?AdsBranded等你!TK老户/国内外端口/预审/加白广告位出租8500万高质量住宅IP,助力各种需求
虚拟卡返佣1%,国内持牌机构   
查看: 10184|回复: 7

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

[复制链接]

6

主题

303

广告币

310

积分

初级会员

Rank: 2

积分
310
发表于 2018-8-28 13:34:29 | 显示全部楼层 |阅读模式
HuiTong虚拟卡
本帖最后由 xiaoxue 于 2021-3-10 09:21 编辑 # F7 j+ s( S. i% b; U) L

5 B4 i  K$ w# Y5 G/ C' y
) t' ?3 g/ ]) ]/ C7 l4 I
  1. 5 _% I! B7 |' k8 R& J
  2. # -*- coding: utf-8 -*-
    # s" G( U) T' u& ?; Y3 g1 f/ r

  3. # F  b) v- R! M- ^/ Q- Q
  4. from aip import AipOcr
    2 ]7 c1 I8 U5 }# _6 k
  5. ; q/ P1 n1 D1 [8 `
  6. from selenium import webdriver( {) i6 ?/ d; |1 V
  7. 5 h& O. g, q' L1 Y
  8. import time( r) M% ^; S: I& ?6 [) `3 ^$ x

  9. 8 U+ C  P9 T4 u/ P' n
  10. import random
    , \4 A; d' C2 ~
  11.   D. n- A: y+ ?- J. b
  12. import sys,re
    " @( w/ {3 W8 S- c4 n& h3 ]; G: z
  13. ; R- s: `5 X0 h. u. \9 O
  14. from PIL import Image, ImageDraw,ImageFont2 o% Z+ Q$ H- Q" T9 t" s6 D* K% Y; W

  15. 4 q  `9 r% P( h- {  r4 x0 Q. l
  16. """ 你的 APPID AK SK """9 x) i! U( O7 t0 g2 ]' ~

  17. : d, y% K8 z  _/ x8 Y
  18. APP_ID = 'xxx'& h6 i  j& B0 w. G) }
  19. 4 l  ~7 t# h5 U, l4 g) {
  20. API_KEY = 'xxx'
    % g- Q9 e6 H8 R% c" y
  21. 0 K4 R( Z4 a* T3 y  R
  22. SECRET_KEY = xxx'8 T$ |) z" ^2 ^4 W( _( y" e

  23. # D4 f" J4 ^4 \7 D$ n
  24. client = AipOcr(APP_ID, API_KEY, SECRET_KEY)  J7 C7 K. I1 ]& K* M+ E

  25. 2 k. q9 t! [) l2 M) B
  26. #PROXY = "127.0.0.1:8118"
    7 D2 X% i9 H" T; u* o  ^. @; T0 J' _/ |  w

  27. 1 {) s' w! f' L$ t
  28. chrome_options = webdriver.ChromeOptions()
    4 C% U8 p, E0 d9 O9 b7 U

  29. 8 e* ]7 ~( f! {
  30. chrome_options.add_argument('--headless')/ X$ W: N( q( m0 s2 Q8 y" J7 ]

  31. 5 T8 J+ O) @6 [0 ^, e3 M$ y* z; g
  32. chrome_options.add_argument('--disable-gpu')
    - `7 N) |3 h0 ~* ^
  33. , {1 j3 B$ k+ Y  Y3 Q6 f
  34. #chrome_options.add_argument('--proxy-server=%s' % PROXY)
    ; d( i' y- Y9 A. r4 ]. N0 w) w) S
  35. $ \0 R) @" F+ Q9 |9 ?- Y1 w
  36. chrome_options.add_argument("--incognito")% s. v* s0 e: C; P0 c5 e7 a, L
  37. ! p' }+ J) ?# N
  38. chrome_options.add_argument('--ignore-certificate-errors')' D! j! O2 P8 m+ j( @8 \( u+ U
  39. ; P) i9 V/ k( [& b
  40. # Win/ w- X4 N6 s, A  X

  41. 9 D+ T6 G) T. v8 v6 r; B- y
  42. # chrome_options.add_argument("--log-level=3")
    + z9 j! L2 W2 @0 f
  43. 0 d1 E" l, _1 ?
  44. # chrome_options.add_argument("--disable-logging")! h1 V7 j4 S- a3 N

  45. ( e7 b# M; c5 x0 G+ C$ j" ~
  46. # chrome_options.add_argument("--disable-logging")6 {& w' I5 o8 J. Z# x) q
  47. - U5 U3 C# V% w  }0 r+ E
  48. #chrome_options.add_argument('--no-sandbox')
    1 i- `) g0 U" D8 h" k; g
  49. - S$ }: [/ `% Y8 l
  50. """ 读取图片 """4 |2 }: I8 |  [6 t

  51. ) X% M' q- J2 F7 X( |& s1 e* v
  52. def get_file_content(filePath):% W" I2 P1 r0 s9 [2 V! v

  53. 5 d8 A% O1 b  O* G6 s" p
  54. with open(filePath, 'rb') as fp:
    ' R  K) t- G! n4 A+ E& `

  55. ' j7 i, p0 C. p  P; y) e
  56. return fp.read(), X/ f: f9 o' M/ `( \
  57. - y$ V' q% y: y  |+ ^
  58. driver = webdriver.Chrome('~/chromedriver',chrome_options=chrome_options)7 o+ B( O4 X# K) C0 X

  59. ( b# }/ Q$ ^' ^% n  A# b' g
  60. driver.set_window_size(1280, 727)- g; G( A! p4 M7 ^: D

  61. 2 ~' t% f$ |1 l2 A$ U, V
  62. driver.get("https://youlikehits.com/")
    % z; ~& U& X3 ]& I# z

  63. 0 X& [% f* T# B0 H
  64. time.sleep(5)) H) F" D" V# g8 I5 x6 e
  65. ' J' n/ Z9 M9 u! w$ Z
  66. driver.find_element_by_id("username").send_keys('11111') #user* M: s; z* |. }" ~. U
  67. 3 |0 c6 I1 e( C0 m4 o
  68. driver.find_element_by_id("password").send_keys('111111') #password' B# x% U7 E6 c9 ?" X

  69. 5 R) |0 L. W" I7 [; g" n4 @
  70. driver.find_element_by_xpath("//input[@value='Login']").click()
    1 C; Z  Y6 g0 a* l* O

  71. " U: m% D8 ?. _$ d
  72. driver.get("https://youlikehits.com/youtubenew2.php")
    / \! V/ a9 G: H

  73. . K/ u& W( r! h$ j+ T7 m" n
  74. time.sleep(1)5 _. p* O9 ~$ f+ a. F

  75. - E. P0 t% L  F' H
  76. #Try Again* Q/ \( g! L" Q5 @- ~
  77. 9 u3 L7 R$ X9 {9 a. L
  78. def checkRefresh(driver):
    7 \8 n( I+ D9 S0 Q" I

  79. : Y( g: G/ t, @5 }  z" R9 s
  80.         try:) l* P/ w8 J5 z8 c/ \& L' c8 `* [

  81. & l. p6 \* t8 f. L7 Y& W  b' w
  82.                 Refresh = driver.find_element_by_id('loadmore')
    0 N& A5 U/ Y7 }1 N
  83. 5 m0 J* T& k! |; ?, G/ h, H
  84.                 Refresh.click()
    6 }! E# t$ A' U, @! b

  85. 0 M; Q1 o  n$ p; [
  86.                 driver.set_window_size(1280, 727)
    - r( Q4 Z6 j: F/ V. u, B
  87. 7 c0 [( |. t& Y. V! b1 W# l
  88.         except Exception as e:; }% Q3 k# ^4 Y# ?# `

  89. 8 ^7 I. e- [' ]# z  x9 J
  90.                 pass
    . e7 u0 \$ }4 J, V

  91. - j5 D5 j' g# M5 }$ t, i" z; k: i
  92. def checkcaptcha(driver):0 ~" G9 Y. m6 U, i

  93. 6 G% a" |# _6 _0 @' ?. X0 C
  94.         try:
    / P" ~% l$ s9 D$ [8 n  I. y! G. C
  95. 7 v% ^; g8 T; V
  96.                 captcha = driver.find_element_by_id('captcha')+ j5 [3 p  ^. `% C
  97. 1 o1 h" Q; T" N; t' k, t& R
  98.                 print driver.get_window_size()
    % ^: ]5 _) Y3 H$ e- \. E, D

  99. : J5 e2 L( o  G+ F3 z/ V6 j/ `
  100.                 time.sleep(2)
      g0 T. H: Q7 o8 P) Z2 L) r* F

  101. : E, c& R2 `; }; K
  102.                 driver.save_screenshot('/tmp/screenshot.png')
    % h1 a7 [! t1 \% x
  103. 5 I6 J! r! m0 u8 T  x2 Z
  104.                 im = Image.open('/tmp/screenshot.png')4 d3 L- ], H: L3 ^; ]& ?1 t% l4 C
  105. 6 l, t* i' |+ D; }; x5 S" T* G
  106.                 #取消headless模式
    ; Z+ {* L% ]9 E% t

  107. 8 R$ C* E) O6 v. B/ c8 j: P
  108.                 #a = im.resize((1269, 610),Image.ANTIALIAS)* f: M5 \( f" R1 c. ^' A  f& k
  109. ) r* S* S8 x7 b) C* X+ r% o! u
  110.                
    7 I8 i: K4 c; r' u
  111. , X; N) d1 |" Q
  112.                 #开启headless模式0 Q, z. C# k# m* y1 C% Q3 I; W. C, Y

  113. ; \& Z3 s4 u, P7 {% p
  114.                 a = im.resize((1269, 727),Image.ANTIALIAS)
    ; K4 W5 }5 \  F- S- z) A
  115. " j+ B) c$ q1 l5 ?4 i( m0 M
  116.                 element = driver.find_element_by_xpath("//div['#captcha']//img[@src='captchayt.php']")
    % \& A5 c" g  W. i" k! j* ^
  117. / t9 [8 z/ y! D: I. z! B
  118.                 left = element.location['x']5 [6 \+ v3 S: e& U/ I3 w5 Y
  119. 0 [' G0 s1 H4 P1 e) v# v
  120.                 top = element.location['y']
    ; q! m( u9 k4 a5 J$ x
  121. ; \. U/ {  X* \8 ?2 J
  122.                 right = element.location['x'] + element.size['width']
    " h- @) q4 z) i

  123. 6 k( l$ E. v5 j0 E# {
  124.                 bottom = element.location['y'] + element.size['height']
    " I) F* \4 s# G. h

  125. 4 `$ A% R* s8 z
  126.                 & W, H7 Q8 v& w1 n: h% z$ F0 |

  127. 8 a& j: z( L$ d$ {- j" j
  128.                 #element = driver.find_element_by_xpath("//div['#captcha']//img")9 M* r. G& q9 P
  129. " C3 j# i, X7 {% N. H" D. d
  130.                 #driver.find_element_by_xpath("//div['#captcha']//img[@src='captchayt.php']").get_attribute("src")# q9 R) E$ R0 ^/ d. N7 [! B
  131. 8 w6 A  B& F% N6 W. l* `, B9 H
  132.                 element = driver.find_element_by_xpath("//div['#captcha']//img[@src='captchayt.php']")( F. r9 f7 T8 H% U) X% F# U- a

  133. 1 G! d5 S' k, E# A5 s2 I
  134.                 a.crop((left, top, right, bottom)).save('/tmp/screenshot1.png')
    1 l2 {6 \# M, S8 H1 I6 `4 G: i

  135. * w0 e5 Q& S$ [  e7 d
  136.                 image = get_file_content('/tmp/screenshot1.png')
    4 Y  J  o) u5 `
  137. # x6 q) r5 u: ]4 O
  138.                 a = client.basicGeneral(image)" C6 ?1 O% P# }5 s4 i$ x+ g
  139. 1 A' B1 M, Z$ @+ p) L6 K5 J
  140.                 print a
    ' z) U! W# z" l2 w: N  i5 t
  141. " D" O. I' h* w! _! l
  142.                 yzm = re.sub(r'\xd7',r'*',a['words_result'][0]['words'])
      {- X: j  s* V! `3 z  e) ]  w

  143. 8 R; F6 q+ e) s' v
  144.                 yzm = re.sub(r'\xf7',r'/',yzm)- m. b- f3 Y  i7 k/ i

  145. " O0 l, {/ t8 B1 y' r
  146.                 yzm = re.sub(r'x',r'*',yzm)# {) `( Z1 t- \4 [2 y
  147. : F& z3 y, Y2 R, s9 v! ]- D1 m+ X
  148.                 yzm = re.sub(r'X',r'*',yzm). P3 Y0 A3 r1 _3 E

  149. 4 E/ a8 p4 y6 W5 T% h. S% h
  150.                 yzm = eval(yzm)8 j+ P4 P9 ^  b. R4 k/ u# a, d
  151. ; A( \. Y4 W3 C
  152.                 #yzm = eval(yzm.replace('x','*').replace('÷','/'))! g" l! I% j9 E% l
  153. ' C& X. j! V0 B, }9 p7 l
  154.                 print '验证码: ' + str(yzm)
    , H7 Z9 h9 Z% V: A) T
  155. ; F9 J7 A2 K9 e" c) R+ ~- u. U$ E
  156.                 driver.find_element_by_name('answer').send_keys(yzm)! ~1 R0 g. C0 C0 o, ?
  157. - Q% t0 ]3 h# z# f
  158.                 driver.find_element_by_name('submit').click()  K: ~6 l- h; J/ U/ N) e

  159.   U1 X* F4 n, T" ~) c
  160.                 time.sleep(3)  g3 B. r% l/ I, d( W2 ?

  161. . q. l, t/ B7 U* M! l! W$ l2 z& M9 n
  162.                 return 1' m: J1 u. @2 e" C" J9 f

  163.   v. W- Y0 O5 Q( t, M) n/ a9 D
  164.         except Exception as e:( `# B6 ]5 o" s8 @; O# e. x
  165. ! G- R1 J( i' W) y
  166.                 return 0
    * y& X# @3 L; l. E7 R
  167. 0 h( _" S$ L% a2 y. t( S% p) `
  168. def followbutton(driver):5 D7 V. o  r0 O0 b$ C2 i8 w, M

  169. 4 W+ k/ K: y, a& g# a9 |1 z
  170.         try:
    " ]8 C- ~! Q; ]! n7 O# U
  171. + v; N" N- }* o5 H% Z. W7 G+ Q7 w
  172.                 driver.switch_to_window(driver.window_handles[0])8 B! E9 Y! z& B6 l: S
  173. 4 J4 J# y9 K2 w8 U$ h" x
  174.                 points = driver.find_element_by_id("currentpoints").text
    $ p: Z9 r9 u' |  R$ c
  175. ! Z! h9 @) F6 v* T, o
  176.                 driver.execute_script('return document.querySelector("a[class=followbutton]")').click()
    . z6 }0 t( w3 |8 n

  177. ; P3 _$ S1 h0 \% e' y( k
  178.                 driver.switch_to_window(driver.window_handles[1])
    6 T! V5 Y, X: x( @8 Y( a

  179. 9 D  `: V  l5 r# j
  180.                 VideoSource = ''.join(driver.page_source.split())
    " Y8 a- V0 D- a5 ]) v

  181. & E, t( {& |4 C. U! S
  182.                 if VideoSource.find("This") < 100 and VideoSource.find("This") >= 0:
    - b( m" Q3 ~$ b+ S' x
  183. 5 q$ g3 t: K1 w# ~/ R( T" k2 k3 d
  184.                         print VideoSource- g9 F9 z7 |9 l9 u

  185. : j8 w* f- A$ G! ]+ s4 ~* R+ k
  186.                         driver.switch_to_window(driver.window_handles[0])
    8 \/ }; D$ O4 ]7 S- |- b
  187. 6 H5 l: C) B  N- n& u
  188.                         print "Refresh..."
    1 ^" A# i. u' ?+ z7 b; p- @
  189. ; `$ P, n; j- j
  190.                         driver.get("https://youlikehits.com/youtubenew2.php")2 c6 _: i5 ?/ X( Z
  191. 7 o8 a5 d/ Z$ G; K1 x% X# f; t) p
  192.                         time.sleep(1)  A9 P/ s' F" G% V

  193. * Z9 U, ~; c7 w
  194.                 return points9 b6 u$ j2 o. B  M6 m9 x6 i9 l
  195. 8 O' O8 B" K  M) L( W5 E
  196.         except Exception as e:
    7 ?+ t9 d9 ~6 I( P
  197. # g8 d9 W# k( ?# k7 \! d, Z
  198.                 return 0
    0 b# @  U% v; l$ C/ ^6 Z
  199. 4 I$ }% [: z' H" [  }4 s& m: K
  200. for i in range(0,5000):9 o; v/ }" k6 g$ S7 a

  201. 6 n2 A: D$ z6 K: p& y( S0 F
  202.         try:
    6 v9 ^7 H5 u2 N, Z
  203. + f( c, A1 L/ g
  204.                 captcha = checkcaptcha(driver)5 ^1 I  k  o2 M+ F' a& z* a

  205. 9 [. ?+ h) n4 ]; V2 R
  206.                 time.sleep(1)# R! I/ U" |' l- H

  207. , G# k9 W; [( b& E1 F; D/ G
  208.                 checkRefresh(driver); d' G, c) |0 Q: y  \# |
  209. 3 M% h9 P7 _5 S
  210.                 points = followbutton(driver)- d7 m3 x" H8 E  Q* y: `
  211. ; H( j8 D4 \' {; w6 b! |
  212.                 time.sleep(65)0 w# ^: B! F$ i& A; C& s3 B  Z) j

  213. . ~' W; X1 D3 X- G1 k$ Q
  214.                 driver.switch_to_window(driver.window_handles[0])6 S( B% ]) N  u/ R

  215. * M! l" |( c- f
  216.                 tmpp = driver.find_element_by_id("currentpoints").text
    ! y( g* p) ^* f! F3 ^7 J/ f/ S+ @' w

  217. ; H, T, c- Q2 N$ n
  218.                 print "points: " + str(tmpp)
    - I+ u7 y6 }/ U8 Z+ _
  219. & H  ~5 Y# Y6 u
  220.                 if points == tmpp:
    0 M! ^6 C/ I6 ?, N
  221. , s: m" W) z  c( d
  222.                         print "Refresh..."+ D3 S3 D) p( k
  223.   P& |4 _" Z* w; G
  224.                         driver.get("https://youlikehits.com/youtubenew2.php")6 ]7 u7 `( Q( o) r
  225.   ?% [; f9 n) U
  226.                         time.sleep(5)
    6 P, {7 ]  ^: n7 Y. n
  227. 1 M" V# o$ A5 l9 C
  228.         except Exception as e:) _) N% [3 j$ e' U8 L; W  }

  229. % D# A- R' }! b4 Z8 v" G
  230.                 driver.get("https://youlikehits.com/youtubenew2.php")
    7 O9 l& t1 ^0 R; \0 C5 _1 \4 i+ ~) A
  231. 6 \' ^8 T8 K5 |# Y( C
  232.                 print 'error: ' + str(e)) D- [3 P3 F( l. p9 p" O

  233. 6 _, W0 X' F& U4 r2 ]5 b/ q8 b
  234. driver.quit()
    * U0 q. e# G' A+ b9 Y9 @
复制代码

' \. v3 y: q2 `0 e5 D0 V/ j; f( A9 x) C+ b" P4 V
+ B% R3 }( |1 \8 I7 ^# P
因为headless ,可以挂在vps上跑。。 百度识别验证码正确率还是满高的。
1 Q9 s  S0 r- c$ b! X
, u' V) z6 W5 a8 v" V

评分

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

主题

1001

广告币

1498

积分

高级会员

Rank: 4

积分
1498

社区QQ达人

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

使用道具 举报

176

主题

1159

广告币

4219

积分

超级版主

Rank: 8Rank: 8

积分
4219

社区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; F# a# U5 g' h! \3 k+ @/ `
用的是selenium库啊,我最近也写了一个小爬虫也用了selenium+pywin32模拟点击
' p( v6 H8 o! I, X& P
小批量的还可以,多了实在是舍不得cpu。 并发也是个问题。卡卡的 娱乐还可以。个人观点。。哈哈; w5 i; B; a; Z+ Z& U3 Y8 U
) ^, t+ q, W7 Y8 C& q5 U( n5 |* m
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-11 22:43 , Processed in 0.050318 second(s), 15 queries , Gzip On, MemCache On.

Copyright © 2001-2023, AdvertCN

Proudly Operating in Hong Kong.

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