数学建模社区-数学中国

标题: Python-追剧下载视频 [打印本页]

作者: 檀俾九    时间: 2021-1-19 10:25
标题: Python-追剧下载视频
[code=python]#!/usr/bin/python
6 D: |9 I! _5 T, e  n/ |# -*- coding: utf-8 -*-
6 n! _) Q7 G% D8 J/ D( v8 E* o; m- r* v5 P$ D
import threading; {8 A) A2 H5 T& a- t
from lxml import etree9 _# F3 P) o7 K8 E
import requests6 y6 L/ ?. {: F
from ctypes import windll
: I0 a. f9 U' v# \
8 K  b/ p5 K+ [8 W
/ x# K6 g3 Z' a% ^, Qdef getmidstring(html, start_str, end):- f4 L+ z2 J: A4 N& j" O
    start = html.find(start_str)- w5 |5 z9 t: g2 v7 I
    if start >= 0:
" M6 ]( K' J) q        start += len(start_str)# y: B6 a* l5 o" x* E
        end = html.find(end, start)- r9 ^. f! V. b  I  o7 H
        if end >= 0:
" a" Z: g2 }, K8 b2 @! x$ m            return html[start:end].strip()
+ j! a4 g9 A% U2 D# @( H% b$ w3 n
, K* \$ `7 b7 ~- ^4 F" |
def getleftstring(html, end):
0 |" }( f) C- \4 }9 E5 L5 h    end = html.find(end)
  Y8 I6 \+ X4 y: t8 M+ M8 J    if end >= 0:* B8 M. e! H$ W8 g7 b  a
        return html[0:end].strip()
& R' d; E$ ]0 e; |* f% m7 y# [" N2 u; }9 k0 _+ d6 A

5 e! z/ S: ]; Z: \5 c% Mdef updata(i):
: m: n1 P1 ?; J( |. b    req = requests.get("https://www.xxx.com/play/xxx-2-%s.html" % i)
5 N! `- |! l- H  N+ |6 K    req.encoding = "utf-8"1 E4 p# a# {- s0 a* T
    m3u8 = getmidstring(req.text, "var now=\"", "\"")8 ]9 K4 N9 V' b9 ~& U% H) \, |( Z

* m' Q) B( N: l    html = etree.HTML(req.text), v" a5 v: @( M
    title = html.xpath("//meta[@name=\"description\"]/@content")[0]4 ]7 H% [) |: I5 r9 \
    title = getleftstring(title, ",")
  ^* ~& K+ F1 X7 {" ^    print(title): ~6 X/ C" b: F" m( K

2 Q! ?" f! d- H2 h5 x    cmd = "\"%s\" --workDir \"%s\" --saveName \"%s\" --enableDelAfterDone" % (- B1 k5 k( w- w9 ~2 y% Q
        m3u8,
6 a4 c8 H6 r0 }0 E9 B- V! Z        r"F:\xxx",3 I5 m/ W  b7 l# ~, c9 t! p
        title)' }' Y' j% y& u1 j7 Q4 b
    print(cmd)+ `. ~6 r  K' K! K2 t: `# l7 B
- _) a0 p7 `1 X: \2 D8 i! E  [
    dll = windll.LoadLibrary("Shell32.dll")8 v& R* ~6 o/ g1 c* p2 B' Y
    print(dll.ShellExecuteW(None,  ?7 c0 `: m/ {2 t3 {/ }! G- j5 m
                            "open",
: d7 \5 d/ X) O& {                            r"D:\xxx.exe",
0 ^6 @0 n* N0 I/ f/ W5 B                            cmd, None, 1))
* N- K; g% L' F8 o
- m. l9 a. [; g( [4 k1 {1 e* T% B$ I7 ?- V
def cycle():' ?" @5 [! N/ j
    for i in range(40):  U  B& l$ r& t$ N( {9 g; m7 ]+ Q
        updata(i); Z/ {( O3 }6 B  O2 ?
1 Z% Y' v% z/ J* Z, [

6 w, o. b  ~" h, l. Z$ Yif __name__ == '__main__':9 g' E" q7 H. u, P# g( G! {  _+ \
    hThread = threading.Thread(target=cycle)
( U( J* Y7 A' G8 N, |! w    hThread.setDaemon(True)7 _$ k0 @- j/ x: w
    hThread.start()# r% J5 Y9 t+ T9 i5 k
    hThread.join()
4 q  F. R3 Z! V1 V3 X3 ]4 F1 p6 C[/code]
' q8 m+ X" x) q. M5 q+ [4 k
/ I( E# f  R0 Z  e在线追剧又卡又慢!还不方便,写个Python脚本自动帮我缓存下~1 e; P- e+ P' D6 F- c

0 H; d* o" C: q6 Y8 u4 I9 z  C! z
转发自派生社区
Python交流群:1047602540

. C# d/ t7 X/ f) S' J, c7 A' u0 c: D. I% r7 F: P7 [, k+ x3 ^

: |- B' W: K7 B: E; E, \




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5