AdvertCN - 广告中国

 找回密码
 立即注册

QQ登录

只需一步,快速开始

 谷歌+Bing+TT+MSN官方代理 
⚡️按条S5代理⚡️静态⚡️独享⚡️5G⚡️最干净<Wifi住宅+5G移动>IP代理泰国仓储,本土仓发货2-3元/单
指纹浏览器,就用AdsPower谷歌/FB/Bing/Yahoo代理商开户7200W全球动态不重复住宅IP代理全球优质流量,选TrafficStars
出售Facebook,友缘号,FB广告号,insFB/TT/KW 加白开户ADPLEXITY + ADVERTCN比Adplexity还好用的Spy工具
广
FB/Google/TK海外多媒体极速下户
BINOM TRACKER 60% OFF!MediaGo+Taboola+Ob开户百度国际MediaGo⚡️让产品狂奔全球百度国际,高点击转化,快速放量
百度国际MediaGo,独家原生流量虚拟信用卡+独立站收款行业首创新型指纹Cloak, 谷歌奇效!Kookeey⚡️100%独享⚡️原生住宅IP
⚡IPFoxy住宅代理全场88折⚡全球虚拟卡, 支持U充值免账户投放 FB 广告(送项目)2024做什么 - Media buy 项目库
免费黑五教程(持续更新、欢迎交流)Facebook 批量上广告Bridgeway - 联盟营销网络IPCola 全新住宅代理 ⚡️ 免费试用
各种主页、账单户、BM户(优势)⚡️个人户,bm户不限额,账单户Adsterra 的CPA/CPM/CPC 网站流量在线注册美国/英国/香港等海外公司
EU KETO/CBD - JumbleberryFB二三解1元/个9Proxy ⚡️ $0.04/IP, 无限带宽 cloak斗篷/ss/nutra/cpa/Dating
E.PN 虚拟卡Asocks代理服务器$3/GB高薪诚求实力FB投手(独立站)《全新虚拟卡+全球收付款》
广告位出租全球低价纯净住宅/移动IP-免费试用广告代投, 东南亚物流, 虚拟信用卡VMLogin指纹浏览器+多账号防关联
查看: 6565|回复: 7

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

[复制链接]

6

主题

303

广告币

310

积分

初级会员

Rank: 2

积分
310
发表于 2018-8-28 13:34:29 | 显示全部楼层 |阅读模式
adsterra
本帖最后由 xiaoxue 于 2021-3-10 09:21 编辑 " ]+ ?* ~6 _% g1 C& R6 r# [4 ~: O& J
4 [+ w1 V2 n$ l( Q8 ^/ `( m  m

! R4 E( k- p6 t) M2 ]; B# `  }
  1. ! v* z& [5 ~& s9 Z' G/ y. r
  2. # -*- coding: utf-8 -*-
    7 Z& s0 M: \7 p7 @- I5 o

  3.   o+ e" w( r' N: g2 o
  4. from aip import AipOcr$ v, T7 e* F7 S% I3 i( T; s

  5. 0 ]4 H& g0 Y( \9 p
  6. from selenium import webdriver
    ; W7 u9 w- a4 k; b1 {- i7 J! ]
  7. , G: m5 E5 u2 a$ E: G5 C+ F; p: N
  8. import time4 w* @: }: e: X, H. I' W

  9. ' S+ |" q1 \! z# j/ a# U! w" k
  10. import random
    6 G$ F) }0 N3 m8 M6 B

  11. ) E) u' L+ J9 L/ s. {) J
  12. import sys,re
    ' g7 U7 }+ l4 I, J  @9 M, e
  13. 5 y/ `* r7 d8 J6 l8 c
  14. from PIL import Image, ImageDraw,ImageFont
    / N) s, O" o& n8 I1 ~

  15. * ~; g! u3 p/ O6 b. C2 B* B
  16. """ 你的 APPID AK SK """
    & l# ~; Q  I/ c& [. X) h" @% S# S
  17. # k/ S" ?# y* y, X  k# u! w
  18. APP_ID = 'xxx'  N- m& b; d4 Y; b- j( \6 u% b6 E

  19.   ~/ c5 a& c! y# r. ]
  20. API_KEY = 'xxx'" g  }$ _1 |; k3 q2 Q
  21. / L6 u7 N+ Q& ]# R  D- W) ^
  22. SECRET_KEY = xxx'3 P9 ^* z# k% g8 \7 Z
  23. 0 C. N1 ~) Y# l2 _0 C- M1 m
  24. client = AipOcr(APP_ID, API_KEY, SECRET_KEY); `. k3 c6 s- v: I2 Z; [

  25. ; P' C0 a. y4 p1 {- ]- R
  26. #PROXY = "127.0.0.1:8118"
    : U; ?/ x% F# P8 X
  27. + J$ A/ W. ]; ]) k& L
  28. chrome_options = webdriver.ChromeOptions()$ L4 L; I  b$ n) Y  x4 E( H' X

  29.   @: K  M7 N1 _* ^( S# m  o
  30. chrome_options.add_argument('--headless')2 [" |0 d- n/ o: m" P# u

  31. # `, w1 s0 Q4 i; X4 \' ?' l
  32. chrome_options.add_argument('--disable-gpu')
    % a/ s& I* b+ s3 d$ n  J

  33. & {8 K2 G7 G6 S& A6 Y4 `5 d
  34. #chrome_options.add_argument('--proxy-server=%s' % PROXY)
    1 _, A1 Q; K5 V: p5 \  B4 ?2 f

  35. $ y& i% `( t4 `5 h# t7 f( [2 z
  36. chrome_options.add_argument("--incognito")4 @; [  B- @4 d
  37. + {$ c- X& z) P3 D
  38. chrome_options.add_argument('--ignore-certificate-errors')
    " ?% T4 \; @3 k/ M: D

  39. 6 c. U( T- ^  T: V0 w
  40. # Win9 `; H6 l/ C, V1 ^( R
  41. 8 X+ x% K9 Z6 k+ D' C4 A3 z( A
  42. # chrome_options.add_argument("--log-level=3")
    ; }, m' ?' J" x5 w

  43. 4 ^# @) \* l! Q/ q
  44. # chrome_options.add_argument("--disable-logging")/ m% Y5 p- U5 x- |7 C$ |8 f

  45. 6 ~' E% d0 ]  C( ~4 l* E6 Z
  46. # chrome_options.add_argument("--disable-logging")9 v; k- K' d% u' U; q! T
  47. 1 j* S! q* D* e2 X4 \
  48. #chrome_options.add_argument('--no-sandbox')
    3 v, ^* y) E& }; O9 N# k

  49. 1 q) ]) t, T$ D+ P% f
  50. """ 读取图片 """" l2 r7 \' ]( O+ _4 Y2 F( P

  51. / q+ X/ k" s+ p( W
  52. def get_file_content(filePath):
    ; Y6 d4 s0 b% o

  53. 9 p1 G( B! m5 ?' J# U5 x
  54. with open(filePath, 'rb') as fp:
    6 G3 T* s3 Q  U# D

  55. 8 C6 s; D1 @( v0 N" u4 z& o) p9 W% G
  56. return fp.read()
    7 O3 F* G/ x3 @* p5 J5 D3 v: s
  57. . H( F8 [; w0 o6 {9 ~
  58. driver = webdriver.Chrome('~/chromedriver',chrome_options=chrome_options)
    + w3 Z5 f+ u: ]) D
  59. $ N! M; @% F0 q6 ?; B, B* T6 a4 N: m
  60. driver.set_window_size(1280, 727)0 @$ D# A* @5 P! H. z$ @
  61. $ h7 k2 n; n6 L0 _% F0 B
  62. driver.get("https://youlikehits.com/"). E7 I0 h2 p6 x- }" t! F
  63. ' r  ]7 A- v: Q
  64. time.sleep(5)
    0 W, B# f& m" h/ |

  65. ! r. c  J, F  L9 n! }1 @
  66. driver.find_element_by_id("username").send_keys('11111') #user* ^" z7 M6 V0 x$ L
  67. / L& P1 ~) }& I* F$ f- ~! d
  68. driver.find_element_by_id("password").send_keys('111111') #password
    9 R' w" I; d3 g# P4 V4 n

  69. * l' @9 z' Z- x  m) S! x* N% A, h
  70. driver.find_element_by_xpath("//input[@value='Login']").click()
    % l6 E4 m* {4 W; v( v( F, Q

  71. 9 `/ Z! H7 k5 \
  72. driver.get("https://youlikehits.com/youtubenew2.php")# s4 K# N6 |0 f5 [5 h5 P

  73. 2 g+ h5 |6 F! x4 y7 R
  74. time.sleep(1)
    " ?: i0 @# F) R' s: u5 N, k$ Y
  75. 1 v; _. @( l+ [* c- B2 A; g
  76. #Try Again3 E3 }/ \9 S( N
  77. # x3 ]! D* ^' Z( @8 y
  78. def checkRefresh(driver):/ r- C# I; `* X0 M, ?4 p0 H; Q
  79. ) O" _4 c1 a& l* U8 _
  80.         try:
    : u/ o% t' u& u% h* k

  81. 1 X4 v, t* {& T# ^! N5 ]! @
  82.                 Refresh = driver.find_element_by_id('loadmore'); {) R9 B: B+ l4 P0 i! ^

  83. - P6 o1 j% b6 ?: P. r
  84.                 Refresh.click()" ]' C4 A2 g  k1 h- ]7 i( b) x
  85. / B) M! h# |; a+ B/ l0 G" N
  86.                 driver.set_window_size(1280, 727)
    3 K. J. ?' `9 Q3 a; g* L$ V+ i

  87. 2 c$ D- ~$ b% w% y' p- }& z! Z2 T
  88.         except Exception as e:
    5 E+ F7 j3 i/ X* r8 m) i' h
  89. & p9 |2 k4 \2 o0 o" e9 p9 \
  90.                 pass7 Y2 T9 o7 @- `$ o- ]
  91. % T: A: |% G5 T! ^; }2 T+ P. y
  92. def checkcaptcha(driver):: p) W' j2 s6 e: \6 u

  93. : @8 U. M7 [& A. L  {5 Z
  94.         try:
    2 m" O% c9 p: }7 B

  95. 5 G# U  N' e# j
  96.                 captcha = driver.find_element_by_id('captcha')3 v1 ?4 v$ a) P# R8 \

  97. 6 N& C7 n) t& I! O. V0 G2 l+ ?: z4 X
  98.                 print driver.get_window_size()! R& y# v. o9 n$ O2 ~# A
  99. - j$ Z, d* ~" Q  e* F7 B/ P
  100.                 time.sleep(2)9 b6 v( C; \. [9 c# f* {' L
  101. 7 o. s# ~3 [% i7 e1 d
  102.                 driver.save_screenshot('/tmp/screenshot.png')4 Y* _0 ]$ o* O5 Q# Y$ Q& |

  103. , u4 s: P6 t7 K+ |) R
  104.                 im = Image.open('/tmp/screenshot.png')# ?& K2 Q# h: s5 S; p  l

  105. $ Y1 \5 }1 \) L8 r4 Y
  106.                 #取消headless模式
    % F- _7 r: V$ H# p' b5 `2 u5 S

  107. 0 x' C5 P& E" O5 C
  108.                 #a = im.resize((1269, 610),Image.ANTIALIAS)
    2 R, v3 G7 u! x9 Y

  109. ; j8 R4 e  ^: v( [# S" u1 ^
  110.                
    ! t8 T2 l" |! c6 ^+ \9 @" w) B6 N

  111. / }7 }1 R  p' M8 K! c
  112.                 #开启headless模式
    6 ~- Z* F8 e6 n) N) e
  113. ) z% T2 g5 e3 ~
  114.                 a = im.resize((1269, 727),Image.ANTIALIAS)
    ! D! z! _1 [7 Y/ O8 b
  115. 8 @8 j$ M5 L6 r. T
  116.                 element = driver.find_element_by_xpath("//div['#captcha']//img[@src='captchayt.php']")5 A5 D- t- w) X
  117. + J- s8 q9 o( {( C  ?: ^& `
  118.                 left = element.location['x']
    ' F' N* b8 m" L. i4 }
  119. , v) H0 ^# t3 q1 [9 z
  120.                 top = element.location['y']
    5 T  z4 S3 @3 d) x0 D

  121. ) I) T3 n7 p8 r: _, h2 c6 i
  122.                 right = element.location['x'] + element.size['width']
    ( A( {( k; R0 F) H: {, r

  123. 0 b, d2 n" ?% I5 m( \7 \3 B9 q9 {
  124.                 bottom = element.location['y'] + element.size['height']' F( h  u! Z, l
  125. . W; V+ z( O+ r
  126.                 ) Y7 G" R) L5 H/ P7 `- H) `

  127. * Y  r2 W3 [/ s7 ^
  128.                 #element = driver.find_element_by_xpath("//div['#captcha']//img")* |3 X& j: ]' M2 O$ t; d3 |) `

  129. 9 {* m5 \& x) x' ~4 `4 d8 t
  130.                 #driver.find_element_by_xpath("//div['#captcha']//img[@src='captchayt.php']").get_attribute("src")
    / ?' r8 f3 L5 m' ^
  131. ( W; K4 d% ?0 p0 M$ D$ _
  132.                 element = driver.find_element_by_xpath("//div['#captcha']//img[@src='captchayt.php']")( e+ k) H4 M4 m6 @" t* C, u

  133. ; s  k) C6 {2 b) V
  134.                 a.crop((left, top, right, bottom)).save('/tmp/screenshot1.png')
    ( `) g7 [- l" e2 f& \
  135. 6 C/ l, b1 C; C) C. b! W2 T
  136.                 image = get_file_content('/tmp/screenshot1.png')
      s2 O+ R; e: c- U

  137. 6 _. w. J* g/ K. n; }
  138.                 a = client.basicGeneral(image)# i4 j3 E* B- _1 v( g& a

  139. ' Y, P; x5 X( z
  140.                 print a
    : A! o. K$ ^, f4 M+ O; i
  141. 8 D( f: n6 ~& c/ i) I8 O
  142.                 yzm = re.sub(r'\xd7',r'*',a['words_result'][0]['words'])
    1 ?9 ~4 S# I4 r% n/ _1 W

  143. 8 ^% P1 T4 B& X7 \
  144.                 yzm = re.sub(r'\xf7',r'/',yzm). {. m( \  r( b9 B6 Q/ F
  145. + G# [% [4 _( g8 M( i0 b
  146.                 yzm = re.sub(r'x',r'*',yzm)
    ; q  g9 ^9 n1 p3 X6 j4 D# q
  147. , l8 K* p0 {- r0 o
  148.                 yzm = re.sub(r'X',r'*',yzm)! C0 k7 d9 `9 ]2 n6 l# i
  149. 1 Z4 p8 K# X) f7 C, i  W) j9 t
  150.                 yzm = eval(yzm)2 u* K$ @* j0 u0 K# f
  151. * g0 b4 Q4 d2 K5 O
  152.                 #yzm = eval(yzm.replace('x','*').replace('÷','/'))
    , s9 i7 F3 ^5 d
  153. 0 F9 n; \" O  J5 x$ L, h/ {& Q
  154.                 print '验证码: ' + str(yzm)
    2 r4 @( h" \" r& l# i: O: W1 |+ H+ Y
  155. / {: T  D4 }9 X" n. d9 N
  156.                 driver.find_element_by_name('answer').send_keys(yzm)3 n; _5 ~' Y  V( t# ]

  157. ) \* M2 I- N3 A, A8 \" q
  158.                 driver.find_element_by_name('submit').click()( @2 q; }2 T: H' c* J

  159. % u3 n' a! y+ N: Y8 w1 x% l# H
  160.                 time.sleep(3)7 b# l- s& R! P# W
  161.   R3 i, E7 H4 Y# k2 t# ~4 m: ?/ Z
  162.                 return 11 ^- w: b. a% R! Z. P
  163. & ]" q; ?+ z  u
  164.         except Exception as e:
    9 i( ]9 }4 q+ }6 r* `) U8 ^. P

  165. - F- x, K6 E1 J* c
  166.                 return 0  N; I4 r/ F: c# I2 m- `8 e9 R+ u
  167. 4 q+ H( C! B, }' ]7 t  t" t& i
  168. def followbutton(driver):
    * ^# z  y/ a( N6 S: q; ^
  169. ! S8 M! @0 G# L  j, l% j
  170.         try:1 N" ?- p! a) k2 t; B6 s7 n' @

  171. 8 J( f# B) `( c& x2 H6 }
  172.                 driver.switch_to_window(driver.window_handles[0])$ H. w7 f  S3 y" ]3 ]! h. j% D
  173. 0 p' s3 y/ l  G; a5 v0 Z0 r0 L
  174.                 points = driver.find_element_by_id("currentpoints").text
    ( b/ v2 l6 T9 r) F2 V1 [

  175. . n+ Q% i- [( c
  176.                 driver.execute_script('return document.querySelector("a[class=followbutton]")').click()
    6 X+ ~' I! e% m) E, P

  177. & z3 \/ m0 C' Q3 M7 r
  178.                 driver.switch_to_window(driver.window_handles[1])( H- n8 X, Q+ R4 J( {  E% N  p

  179. 4 u1 y$ h7 b9 M' L) a$ u( I
  180.                 VideoSource = ''.join(driver.page_source.split())6 u' s1 U1 X( D$ s

  181. / L1 p9 p( _3 g% {$ p2 m3 W5 Q
  182.                 if VideoSource.find("This") < 100 and VideoSource.find("This") >= 0:2 {1 x3 X2 Y1 y& r
  183. ( [9 O' ^, e- P! Z  t/ K2 E" ?
  184.                         print VideoSource
    / ^; l; B1 p# t6 }4 \

  185. , p: V0 R- m2 S/ K0 m
  186.                         driver.switch_to_window(driver.window_handles[0])
    * N& G+ M$ T- F" o1 J

  187. . J9 `& w& E* t" X1 N
  188.                         print "Refresh..."$ L5 ~+ N  ?; m8 g3 D& E1 _
  189. 8 T& {. i+ }! ^; E/ W
  190.                         driver.get("https://youlikehits.com/youtubenew2.php")6 a0 Q$ Q3 e7 d" i6 C! y
  191. 6 \& I; {8 V8 B; M1 O/ x/ q; n
  192.                         time.sleep(1)9 m& r6 y! X$ N  j

  193. 0 @; ]8 g7 \4 d) o0 S  n
  194.                 return points  a- y, \# u" g9 e9 a2 o# e+ @& a
  195. 1 f5 r/ W$ u6 o. r- Z  ]6 |4 I, ^
  196.         except Exception as e:8 n! y. u3 E/ x- V7 k6 T

  197. $ o) D- w) Q9 V8 r9 c$ I* k3 h
  198.                 return 0
    0 e. |4 q' K/ C  C
  199. - _) _7 L* C. b2 Q: F0 t: Y4 Y
  200. for i in range(0,5000):
    " O) [1 l4 ?/ ~" \

  201. 8 ^; B$ E7 t9 `% ?; ^
  202.         try:; ?' x- s* D. S7 \2 T

  203. % i+ Q  d' ?: f5 H
  204.                 captcha = checkcaptcha(driver)/ C$ E% _, u; v) s2 B

  205. ; z+ Z% D. N# k& L: F. A, i
  206.                 time.sleep(1). v4 d. H  {& T2 }
  207.   i& k, r% ]( Q6 |+ q+ Y9 Z# m
  208.                 checkRefresh(driver)
    ) s8 I8 b" {$ l. @3 i4 O: {0 i

  209. ' ~# l- x" g; i+ }; ?4 E
  210.                 points = followbutton(driver)0 o) T( Y& m: l; p& I
  211. 0 U+ P' W0 P8 e& }
  212.                 time.sleep(65)
    & V2 [! }5 p3 M

  213. 3 w5 c: \& N& b  M0 g) `) t/ W
  214.                 driver.switch_to_window(driver.window_handles[0])
    5 P3 \. J* w" U1 c" F
  215. ( |  t* X0 S1 F. X/ V" |' f% D1 }
  216.                 tmpp = driver.find_element_by_id("currentpoints").text
    - o8 C9 _8 y( X6 L6 p; R. K2 i
  217. " r' g4 y% R/ ^* K3 z
  218.                 print "points: " + str(tmpp)4 h8 h' t9 P2 q4 x1 T. x3 [

  219. # a4 Z9 L' Z( B. `
  220.                 if points == tmpp:- Q5 W* s! |' k! O" T* v
  221. ; N& O) T* Q5 g4 E
  222.                         print "Refresh..."
    2 b" R. `: \, A! x
  223. & Z+ r; ^6 ~3 U6 u8 w6 ]' M
  224.                         driver.get("https://youlikehits.com/youtubenew2.php")
    ! ?5 V( }0 H/ x% g6 p

  225. ( @" w: X! e- w/ M/ [. s0 d; Y; j$ v
  226.                         time.sleep(5)
    3 u  G0 k8 Q2 Z' T

  227. % i( \0 U5 i% O% }" A( @5 K4 \' V, q
  228.         except Exception as e:3 E. M) w& f( y. _, t: m  J
  229. 2 t% J6 k, k. }! y$ ^8 B- k" H* c
  230.                 driver.get("https://youlikehits.com/youtubenew2.php")/ s: P- a9 ~4 \$ P. o1 T

  231. / X. ]0 M' ~& e/ K$ C- K4 W
  232.                 print 'error: ' + str(e)$ G4 }; h6 W8 o- Y

  233. : ?8 w/ A5 g* h
  234. driver.quit()/ p7 W, \: ^$ ]0 o
复制代码

% Y, L- D+ {& }( w  n  S/ [9 }7 g
* |- ~' D+ V9 W! M$ p- w" C
( m- L5 ]& G$ d0 E" p 因为headless ,可以挂在vps上跑。。 百度识别验证码正确率还是满高的。 - G  y( Z/ X  o6 B! S5 K, s
; Y1 V! ~8 j0 x; V8 K( H( L6 S

评分

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

主题

166

广告币

246

积分

初级会员

Rank: 2

积分
246

社区QQ达人

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

使用道具 举报

9

主题

958

广告币

1453

积分

高级会员

Rank: 4

积分
1453

社区QQ达人

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

使用道具 举报

176

主题

972

广告币

4024

积分

超级版主

Rank: 8Rank: 8

积分
4024

社区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 O0 \2 v, R, v* X0 h用的是selenium库啊,我最近也写了一个小爬虫也用了selenium+pywin32模拟点击
( a7 J. F8 x$ K0 [4 j" V7 ^
小批量的还可以,多了实在是舍不得cpu。 并发也是个问题。卡卡的 娱乐还可以。个人观点。。哈哈
% h4 G# P7 b; A) b7 ]' ~* v2 F; K! {/ y6 A$ ?; ~
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-20 15:27 , Processed in 0.052210 second(s), 14 queries , Gzip On, MemCache On.

Copyright © 2001-2023, AdvertCN

Proudly Operating in Hong Kong.

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