QQ登录

只需要一步,快速开始

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

Python-追剧下载视频

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

7

主题

3

听众

10

积分

升级  5.26%

该用户从未签到

自我介绍
我本名为我,那就是我
跳转到指定楼层
1#
发表于 2021-1-19 10:25 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
  1. #!/usr/bin/python
  2. \" h+ D- u! x  V& ?\" B+ a# -*- coding: utf-8 -*-1 u# y2 ?( G$ j' Y! t
  3. , D4 e8 s* y' U+ z, h( D
  4. import threading( E! w& d) O, f* s
  5. from lxml import etree# G& Z9 M: @% a2 a
  6. import requests
  7. 7 w7 t, w$ a8 M' n8 ifrom ctypes import windll' d& q# L4 Y$ S6 t& t* {- r

  8. 8 j; \& G, ~5 _
  9. \" \0 `2 m9 M6 M( A' R9 J' `7 I3 Sdef getmidstring(html, start_str, end):  J: m8 {- ]- @0 d0 H
  10.     start = html.find(start_str)
  11. ! v8 Y, V, m& \2 z( b# W, |( }( u: d    if start >= 0:% c' ?/ P! r0 ]- q$ \6 K
  12.         start += len(start_str)
  13. + g7 \5 g+ Q7 O) k2 F        end = html.find(end, start)
  14. $ I$ W/ q8 G\" y) U6 w        if end >= 0:
  15. 0 _' q9 Z+ \7 i8 X/ P3 i            return html[start:end].strip()6 t$ E1 t' m: o( n! W
  16. 9 E5 a/ T' H3 q$ t- U/ @
  17. 3 P: f9 X+ y. E, s4 y
  18. def getleftstring(html, end):
  19. ; {2 X7 ~, X; X5 l* q7 ^  P6 Q% J2 d8 b    end = html.find(end)2 D( A. \2 ?% d
  20.     if end >= 0:2 J1 g/ I' N  i\" R  ^
  21.         return html[0:end].strip()
  22. , J8 }0 t4 u* G+ }% Q. C9 A1 C4 B& a7 m& O8 ?0 V; @% q2 k
  23. + j% }# W: y$ `
  24. def updata(i):
  25. * G$ v+ k% s0 z    req = requests.get("https://www.xxx.com/play/xxx-2-%s.html" % i)
  26. 0 U! x9 ~, O+ m5 i' U    req.encoding = "utf-8"$ |: l8 M4 t1 N* j3 ]' t% K
  27.     m3u8 = getmidstring(req.text, "var now=\"", "\"")
  28. ' g1 s\" F' p! ^: w3 X& |& E. ~% Q9 e! w- ]$ a$ J
  29.     html = etree.HTML(req.text)9 j2 X( I! t9 C5 [# B! N. a, N
  30.     title = html.xpath("//meta[@name=\"description\"]/@content")[0]; v5 n% e6 M6 U' `
  31.     title = getleftstring(title, ",")
  32. ! z7 [\" [1 W! d) q( W0 T* q    print(title)) W' e+ Q7 ]* Q. e, x  P& z

  33. % X8 C  x5 |9 F    cmd = "\"%s\" --workDir \"%s\" --saveName \"%s\" --enableDelAfterDone" % (
  34. : j) j/ i; |8 w; Q8 k        m3u8,' \- i* z$ p+ d
  35.         r"F:\xxx",
  36. 9 ]/ ^. P! q/ `( D8 ]/ v! s        title)& @' h& P9 f. C# R6 ?  b
  37.     print(cmd): s! n+ S5 |9 V0 ?, Z- V
  38. 9 _3 w3 P) }6 u' F
  39.     dll = windll.LoadLibrary("Shell32.dll")
  40. 5 \5 d6 L/ w  A    print(dll.ShellExecuteW(None,
  41. ! K9 L, e- s0 U) ~: x$ w\" B                            "open",
  42. % ]: k9 \\" h! U\" f9 L9 @2 U, l3 H5 ?0 U                            r"D:\xxx.exe",
  43. 0 f! D' q' e8 A' c) Q7 m                            cmd, None, 1))
  44. # W\" X8 b9 V+ o7 C3 Q% D! i/ J/ F+ s) t

  45. $ ?7 ]$ G7 h# ?def cycle():
  46. 1 A' N! p, P* Y0 f2 M7 ^    for i in range(40):
  47. 4 I$ T% q- Z+ W1 K4 y3 t: ], s% v        updata(i)
  48. ! u0 z- h$ x& H# w% N4 n0 U
  49. / Z! j  J& s% ~$ f* t; O2 G3 d
  50. 2 H4 q0 s/ Z+ A& E: u3 q5 {if __name__ == '__main__':7 {9 P6 w* I% f4 l0 {8 S
  51.     hThread = threading.Thread(target=cycle)9 q\" m. M7 G# N! `# i, f
  52.     hThread.setDaemon(True)& z5 z2 ?7 [# `  h7 h6 I
  53.     hThread.start()
  54.   Y, F4 T3 w% x( l' {8 J+ y1 r7 f    hThread.join()
  55. 1 B; Q( a$ [' ^' @3 G

/ L7 q+ ~& f1 Z. X) j1 F/ S0 j/ r  E% a6 \& {$ s
在线追剧又卡又慢!还不方便,写个Python脚本自动帮我缓存下~
" ~, `, {0 S3 w4 s$ }6 P
: e* |8 D" Q) |
: y' V) A# A: K0 {4 ~
转发自派生社区
Python交流群:1047602540

9 a; T  {9 B2 L; s5 ?# I$ ?6 }
/ d" c/ F6 ?; R7 j6 l0 n5 ?7 G/ N* e6 W. D
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 07:26 , Processed in 0.538192 second(s), 50 queries .

回顶部