数学建模社区-数学中国
标题:
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 etree
9 _# F3 P) o7 K8 E
import requests
6 y6 L/ ?. {: F
from ctypes import windll
: I0 a. f9 U' v# \
8 K b/ p5 K+ [8 W
/ x# K6 g3 Z' a% ^, Q
def 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% M
def 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$ Y
if __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: q
6 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