QQ登录

只需要一步,快速开始

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

Python-追剧下载视频

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

7

主题

3

听众

10

积分

升级  5.26%

该用户从未签到

自我介绍
我本名为我,那就是我
跳转到指定楼层
1#
发表于 2021-1-19 10:25 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
  1. #!/usr/bin/python
  2. : c8 E( }8 ?1 y9 |3 G# -*- coding: utf-8 -*-
  3. ; m' j& R( m) Z/ A( i8 v/ a
  4. 1 q: W& ^! m' t5 k! Yimport threading
  5. 2 G; p! ~2 `\" q+ Pfrom lxml import etree) H$ u$ j) D\" P( j1 y
  6. import requests! h' R6 `( Q: H; P3 X
  7. from ctypes import windll
  8. . h+ h! [  ?' e; R0 c. X3 S\" ?7 C& m' i) A$ k

  9. 3 g6 W6 k* u# ?; o0 j5 Idef getmidstring(html, start_str, end):
  10.   _1 b, v7 ?! C    start = html.find(start_str). J0 V. m( I2 Y6 w$ \; I# W
  11.     if start >= 0:, C# E% a. p: t% q% b
  12.         start += len(start_str)5 Z2 [- f/ P0 _9 G7 |, ?
  13.         end = html.find(end, start)+ N5 c2 R) c: |) F
  14.         if end >= 0:
  15. ' y& F* C% q! Q1 v% L9 c            return html[start:end].strip()+ H4 T: ]\" S7 W6 T8 V' I& p

  16. ! @4 J% S. s& F! `; `
  17. 6 {6 S3 \6 p* r) V, X! udef getleftstring(html, end):# t1 Y) Q% j' ]- m# O- M. d: W- p
  18.     end = html.find(end); k6 B. f# \5 q$ X. e: }
  19.     if end >= 0:; j$ ^8 ~, }& P' U( z
  20.         return html[0:end].strip()
  21. 3 O, r0 X* \$ U# h; \  N) E% F4 m' o$ o. R1 G! i
  22. 7 W/ G) c/ I. n0 r
  23. def updata(i):
  24. 7 |1 t( L# d8 Z7 V/ s# \    req = requests.get("https://www.xxx.com/play/xxx-2-%s.html" % i)\" x' F& E3 {. `$ i6 V$ ^
  25.     req.encoding = "utf-8"- \% p. v& l6 p  k! B
  26.     m3u8 = getmidstring(req.text, "var now=\"", "\"")* }4 u6 v2 ]2 [2 \! A$ H; @2 E
  27. * Y% f/ K- O4 a& ~. G
  28.     html = etree.HTML(req.text)
  29. 0 a5 X% ^3 H6 ]- X' o# A    title = html.xpath("//meta[@name=\"description\"]/@content")[0]
  30. 1 k6 [! p( R  U2 ^1 I2 n8 N3 O7 E/ W    title = getleftstring(title, ",")1 O- v! f) ]/ |\" R) m  J  m
  31.     print(title)
  32. \" n. M8 I0 o) E( N2 n
  33. 1 m1 u  q5 ]& s    cmd = "\"%s\" --workDir \"%s\" --saveName \"%s\" --enableDelAfterDone" % (
  34. ( W) _  O' d* T2 j+ o\" K' t        m3u8,
  35. $ C' H8 w' i; a2 u) k3 O        r"F:\xxx",8 V\" S9 M: Q3 p, }( \3 o
  36.         title)
  37. 1 i5 |6 P4 e3 f. V. _( h1 ^* B4 G    print(cmd)- a; W- y6 y- I3 l, I\" e0 l
  38. # H7 z; ]. d) [
  39.     dll = windll.LoadLibrary("Shell32.dll")2 A! \: s4 s1 f\" n3 X7 v( h2 W
  40.     print(dll.ShellExecuteW(None,
  41. - m  R) K2 }: ~# O' J                            "open",
  42. 6 ], y$ e$ T: T! M$ X1 ^\" i# z1 A                            r"D:\xxx.exe",
  43. + [, }! A3 m( F                            cmd, None, 1))& K7 D& T3 _/ x1 ~* x# A5 t1 s+ K
  44. 7 A; K% W' E9 I

  45. / X4 d! m: W/ w8 W: _def cycle():8 P- H( Y7 K, Q) S5 B
  46.     for i in range(40):; F$ A( a+ T9 r
  47.         updata(i)
  48. ' k3 x4 U3 g, C$ X9 s
  49. ! d  I5 F\" e) ?1 z1 I
  50. 3 [6 F$ P: G7 B, e2 }if __name__ == '__main__':3 n/ Z$ L! ~\" s( T2 _, }6 Y
  51.     hThread = threading.Thread(target=cycle)
  52. ) L5 p; V7 V4 |    hThread.setDaemon(True)7 _! q! G1 ^8 \& ]! R$ i& t
  53.     hThread.start()
  54. $ m0 f* R( x+ e+ I    hThread.join()  X, \7 y/ l; X( w6 x# l
; s; g. ~% o9 d& B; y' N
. O0 j' |6 K9 u# C% p2 a0 r
在线追剧又卡又慢!还不方便,写个Python脚本自动帮我缓存下~7 z- i4 U3 o- u/ L8 h
* Y1 H2 i6 q  e! A
- x: F: X+ T( o+ P- Y* P
转发自派生社区
Python交流群:1047602540

( d. m6 A5 X" u. W& m8 P  p' H7 k, a
4 k  i0 }6 O+ V/ B/ K% u( j0 u9 A9 u" u' M; S
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 12:33 , Processed in 0.503012 second(s), 50 queries .

回顶部