QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3511|回复: 0
打印 上一主题 下一主题

Python-追剧下载视频

[复制链接]
字体大小: 正常 放大
檀俾九        

7

主题

3

听众

10

积分

升级  5.26%

该用户从未签到

自我介绍
我本名为我,那就是我
跳转到指定楼层
1#
发表于 2021-1-19 10:25 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
  1. #!/usr/bin/python) v% N$ n( S. a9 d/ R5 `
  2. # -*- coding: utf-8 -*-
  3. / ]5 q1 O% }, {+ W! D
  4. 5 k) y. s1 i: r9 Jimport threading2 G3 A) L. ]4 e; Y3 B
  5. from lxml import etree
  6.   N. T) r! {; Q0 @4 e, g/ Aimport requests
  7. ! q/ w! X5 a# h7 ^from ctypes import windll
  8. ( k, R7 [4 J( M  Y2 }' B. `/ O3 [8 v! b0 d& |
  9. , h2 ?( ~8 H# h( L\" o: r: V
  10. def getmidstring(html, start_str, end):
  11. - G# t; G5 ~6 p* _8 E6 C% ?' D    start = html.find(start_str)
  12.   t+ L& S: k, h+ y8 h    if start >= 0:
  13.   F+ f* C! d7 F        start += len(start_str): U4 L, _, n. H0 ^3 o
  14.         end = html.find(end, start)0 o; _8 a2 l/ ]# u. k
  15.         if end >= 0:
  16. 9 ]$ P) u3 h1 K  @            return html[start:end].strip(): {8 W8 z# M/ s3 p  J
  17. $ b% V5 {4 I# O. B
  18. + J\" R% V8 ]9 f8 D3 Y5 b0 ^* N' [
  19. def getleftstring(html, end):
  20. , F( G# J# T: {4 J( r& b    end = html.find(end)- ^$ e! S, F. u& o$ s5 p
  21.     if end >= 0:& X# w' v$ ~# y; h- t
  22.         return html[0:end].strip()
  23. $ e2 o# ^+ p& x, @- T, L! ^5 H# \' _
  24. 3 t1 s- D6 S; J, ^; U
  25. def updata(i):
  26. - V. O0 M2 q, ?7 J& i    req = requests.get("https://www.xxx.com/play/xxx-2-%s.html" % i)8 Y# B7 k: L# F! b\" ?
  27.     req.encoding = "utf-8"
  28. ( U$ o6 D  _5 q0 z1 p) k: W    m3u8 = getmidstring(req.text, "var now=\"", "\"")
  29.   p3 I4 ^2 W8 _6 b7 z0 Q' O3 Z' U/ U  k1 U7 d$ p
  30.     html = etree.HTML(req.text)
  31. , ^; O; l1 I0 ?. E4 _# ~    title = html.xpath("//meta[@name=\"description\"]/@content")[0]' ]\" D1 ]% o& Y2 r
  32.     title = getleftstring(title, ","): a) c9 V* D' _5 n9 b. z
  33.     print(title)1 A$ g2 C- D' W; J) n6 J

  34. / A# o* z  O6 _8 Q: `    cmd = "\"%s\" --workDir \"%s\" --saveName \"%s\" --enableDelAfterDone" % (
  35. + s0 ]9 y$ I; g0 |9 S/ p: C% J        m3u8,
  36. ; v+ Y& e5 M* `3 F) c- q' r        r"F:\xxx",0 s3 i$ M7 e& P( e6 {7 R4 |
  37.         title)
  38. / e5 V' n5 i- x3 C    print(cmd)
  39. - n, o* N2 l+ X; n5 @  P! A
  40. 6 E6 _) I, z) f# |8 h# l+ e8 c    dll = windll.LoadLibrary("Shell32.dll")2 J6 k3 s: t' Z1 w7 u  N
  41.     print(dll.ShellExecuteW(None,
  42. : S5 O4 ]& E  G' H7 A\" t                            "open",# S\" S' s2 `5 n$ {
  43.                             r"D:\xxx.exe",/ v8 k! J6 n/ a1 r' Y
  44.                             cmd, None, 1))
  45. # O% y6 ^2 d' \: F1 t8 N\" q
  46. 1 w2 d9 z+ U/ r0 G+ |/ n7 \, p& A8 P! L
  47. def cycle():0 h2 h* ?. A' l, f
  48.     for i in range(40):4 j! e; i4 U9 T  R& A- g) C4 O
  49.         updata(i)
  50. * f+ _* l0 \; V8 c/ M/ o! T, l! {# f, L) r- k- M; t* V% {
  51. ' X8 q: L% c; \; w7 }& g& S0 n
  52. if __name__ == '__main__':9 \\" b. X) \: c
  53.     hThread = threading.Thread(target=cycle)* p' ]' r0 D' B% h/ [: B
  54.     hThread.setDaemon(True)
  55. 9 `9 T' x+ f& J\" f' }- K( t    hThread.start()
  56. ( C  A% d/ |+ X' X- e6 F9 l% w6 ]! J    hThread.join()
  57. 8 i) y8 h0 P7 q6 S% _# Z* M# z2 o) K

+ j) \6 H  d+ j2 A
3 `- R% ^1 f- I5 h5 r: J在线追剧又卡又慢!还不方便,写个Python脚本自动帮我缓存下~! M: r) l, t# n. h6 W

/ O) i9 ~: d2 X, j2 d. Z4 \  i1 P) B9 {; }0 ^+ i/ q  Y
转发自派生社区
Python交流群:1047602540
0 O4 C5 ^4 G/ e7 D! H
' b3 `" n) [9 @3 ^  p" ]9 C7 ^

6 F! c5 A! d0 _' C. ]
zan
转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
您需要登录后才可以回帖 登录 | 注册地址

qq
收缩
  • 电话咨询

  • 04714969085
fastpost

关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

手机版|Archiver| |繁體中文 手机客户端  

蒙公网安备 15010502000194号

Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

GMT+8, 2026-9-2 10:13 , Processed in 0.427404 second(s), 50 queries .

回顶部