QQ登录

只需要一步,快速开始

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

Python-追剧下载视频

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

7

主题

3

听众

10

积分

升级  5.26%

该用户从未签到

自我介绍
我本名为我,那就是我
跳转到指定楼层
1#
发表于 2021-1-19 10:25 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
  1. #!/usr/bin/python) _0 M. t* y+ W3 Z- o4 V& q4 n
  2. # -*- coding: utf-8 -*-& u) V0 |8 q1 Y) {# U4 }' K  _/ C
  3. ) J3 @0 p8 b9 F2 A/ \
  4. import threading7 d( \: E+ e$ l- r& }+ ~/ |
  5. from lxml import etree9 i4 `  ]9 c/ L5 H) x
  6. import requests
  7. ; J* l4 S' D1 D. k! qfrom ctypes import windll7 q( i' m) n' j) I' y

  8. 3 i! `% K9 v) j3 O' U* V4 _- D
  9. def getmidstring(html, start_str, end):) J\" E3 o! l& {. M' X: K* h
  10.     start = html.find(start_str)
  11. * R  C7 f* p4 \; ~    if start >= 0:
  12. 6 K% i. s$ t8 v# v$ a/ c. X        start += len(start_str)
  13. & m9 W, z; i* k% ?        end = html.find(end, start). [2 f- _; R. M$ I1 H
  14.         if end >= 0:
  15. 2 H+ M+ x+ b0 H( P9 E- k            return html[start:end].strip(): }4 }& w( A9 S* S# y- C% x

  16. ' l8 Q* v\" F3 W: p0 F\" F/ u. ^$ H  ^7 c& B\" T8 r# _. r
  17. def getleftstring(html, end):
  18. 0 G! l1 E6 }; Q) p0 l9 ~    end = html.find(end)
  19. 9 H$ G: t2 r* L0 L9 ^    if end >= 0:
  20. $ E: w; N4 s2 ~% A1 a4 X        return html[0:end].strip()
  21. : R) o4 P* B/ Q2 Y1 D. Z\" Y+ a: ]( J( L( s8 E. w5 y1 i

  22. 7 r& o- x0 l8 I* o' A2 Kdef updata(i):
  23. * f$ g+ ?& e3 W    req = requests.get("https://www.xxx.com/play/xxx-2-%s.html" % i)2 M9 _. B' G& e5 d. o- m. b
  24.     req.encoding = "utf-8"7 F( j0 r\" X$ u) P. }\" M& t
  25.     m3u8 = getmidstring(req.text, "var now=\"", "\"")- ?7 l  B( `( E4 o: N
  26. 6 R8 C. c& ?; Y6 D3 I  K3 D
  27.     html = etree.HTML(req.text)
  28. $ y# L& r) Q8 C\" x! W2 \; e    title = html.xpath("//meta[@name=\"description\"]/@content")[0]
  29. ( L9 S+ p% S, M) l/ p4 x5 K    title = getleftstring(title, ",")$ G& s/ ?! q2 J7 S
  30.     print(title)
  31. 2 r, }3 F# `  }1 ~1 }\" t/ B
  32. 4 X9 U: p4 h  y, w8 o# X  l    cmd = "\"%s\" --workDir \"%s\" --saveName \"%s\" --enableDelAfterDone" % (
  33. . l! Q, M4 x* @! m# ~( g+ _2 t        m3u8,  ]2 }+ p( t) c/ g% r
  34.         r"F:\xxx",2 H3 f$ G8 V! K\" |+ {
  35.         title)
  36. $ U- I5 V( n% X6 v$ M1 s+ b    print(cmd)8 y3 ~& E& ]! ?- O$ s) q: Q

  37. / t4 |; O( r( t5 u: ^. y3 E    dll = windll.LoadLibrary("Shell32.dll")
  38. / h1 \7 v, W- l& l! z8 T    print(dll.ShellExecuteW(None,& N$ ]\" k  Y# I8 A7 y0 {$ V
  39.                             "open",' b1 ?. j6 A+ O  R, M! E5 b3 v
  40.                             r"D:\xxx.exe",
  41. 9 S0 {  r0 a- n' D7 m- h                            cmd, None, 1))
  42. + f/ N\" X' }& E+ f% J4 z
  43. + e; u' W8 Q: F; S9 @2 C: D. Q* l/ U% p3 Y) J
  44. def cycle():  [2 ~1 ~: o- t$ b3 v, ?' t
  45.     for i in range(40):6 H6 b! e) x$ N+ u& }/ R* M6 b3 K
  46.         updata(i): g0 _0 O9 W* h- P4 Y, Y* c1 V) K

  47. 3 u/ D7 z6 S# e0 Y$ |! J% \  C; e* S1 j\" x\" `
  48. if __name__ == '__main__':+ [0 z# `- ~2 E5 s4 N* u
  49.     hThread = threading.Thread(target=cycle)7 }+ @+ `% j  B$ g0 K0 y
  50.     hThread.setDaemon(True)
  51. # y+ j4 S$ ^8 D2 e  H- X% v6 K    hThread.start()
  52. 1 Q% J4 d( b7 T; K    hThread.join()
  53. 9 @/ r' I7 N- z2 W8 k

+ |2 K3 {  ~9 ~* Z' e0 I$ s. J6 y2 Y5 L. h9 N
在线追剧又卡又慢!还不方便,写个Python脚本自动帮我缓存下~
# x- w& d- h/ V9 u/ C8 E. e& h" B0 m2 F/ @
) U0 P" L6 Z! x4 A
转发自派生社区
Python交流群:1047602540

* D+ d* u8 V9 D, E$ z# @' h
; z+ k$ j- n4 Z* A5 _( E2 X$ D& p: [
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-7-18 08:40 , Processed in 0.444680 second(s), 50 queries .

回顶部