diff --git a/.DS_Store b/.DS_Store
index f7094e6..2d6925a 100644
Binary files a/.DS_Store and b/.DS_Store differ
diff --git a/READ.md b/READ.md
new file mode 100644
index 0000000..e69de29
diff --git a/README.md b/README.md
deleted file mode 100644
index 9a4dbcb..0000000
--- a/README.md
+++ /dev/null
@@ -1,8 +0,0 @@
-# 笔记
-## git使用
-- 参考视屏:https://www.youtube.com/watch?v=ozRLyN2wyNs&list=PLmOn9nNkQxJFISyrvKUk8OWg-Pzs1donX&index=24
-## 操作系统
-- 参考视屏:https://www.youtube.com/watch?v=ujVSQDPwdOE&list=PLg5ULjirtivtd1p89jL5t1SKU6batBysz&index=8
-## 算法思想
-- 动态规划参考视屏:https://www.youtube.com/watch?v=1BAsAgdx7Ac https://www.youtube.com/watch?v=Jakbj4vaIbE
-
diff --git a/algorithm/algorithm.md b/algorithm/algorithm.md
deleted file mode 100644
index 8303709..0000000
--- a/algorithm/algorithm.md
+++ /dev/null
@@ -1,10 +0,0 @@
-# 算法思想描述
-
-## 动态规划问题
-
-- 视屏资源:第一讲->https://www.youtube.com/watch?v=1BAsAgdx7Ac
-- 第二讲:https://www.youtube.com/watch?v=Jakbj4vaIbE
-
-- 在时间不冲突的情况下挣钱最多?
-
- 
\ No newline at end of file
diff --git a/algorithm/img/image-20191227004315659.png b/algorithm/img/image-20191227004315659.png
deleted file mode 100644
index 35a582e..0000000
Binary files a/algorithm/img/image-20191227004315659.png and /dev/null differ
diff --git a/spider/img/image-20200121110700270.png b/spider/img/image-20200121110700270.png
new file mode 100644
index 0000000..7f50204
Binary files /dev/null and b/spider/img/image-20200121110700270.png differ
diff --git a/spider/img/image-20200121113631436.png b/spider/img/image-20200121113631436.png
new file mode 100644
index 0000000..244915a
Binary files /dev/null and b/spider/img/image-20200121113631436.png differ
diff --git a/spider/img/image-20200121113716159.png b/spider/img/image-20200121113716159.png
new file mode 100644
index 0000000..dd76654
Binary files /dev/null and b/spider/img/image-20200121113716159.png differ
diff --git a/spider/img/image-20200128221627046.png b/spider/img/image-20200128221627046.png
new file mode 100644
index 0000000..c5768a8
Binary files /dev/null and b/spider/img/image-20200128221627046.png differ
diff --git a/spider/img/image-20200128221715829.png b/spider/img/image-20200128221715829.png
new file mode 100644
index 0000000..e9f5d8b
Binary files /dev/null and b/spider/img/image-20200128221715829.png differ
diff --git a/spider/img/image-20200129103435025.png b/spider/img/image-20200129103435025.png
new file mode 100644
index 0000000..c468f13
Binary files /dev/null and b/spider/img/image-20200129103435025.png differ
diff --git a/spider/img/image-20200129103535586.png b/spider/img/image-20200129103535586.png
new file mode 100644
index 0000000..ebbde71
Binary files /dev/null and b/spider/img/image-20200129103535586.png differ
diff --git a/spider/img/image-20200129103703708.png b/spider/img/image-20200129103703708.png
new file mode 100644
index 0000000..80601d1
Binary files /dev/null and b/spider/img/image-20200129103703708.png differ
diff --git a/spider/img/image-20200129104114073.png b/spider/img/image-20200129104114073.png
new file mode 100644
index 0000000..103b2fa
Binary files /dev/null and b/spider/img/image-20200129104114073.png differ
diff --git "a/spider/m3u8\347\261\273\345\236\213\350\247\206\345\261\217\344\270\213\350\275\275.pdf" "b/spider/m3u8\347\261\273\345\236\213\350\247\206\345\261\217\344\270\213\350\275\275.pdf"
new file mode 100644
index 0000000..82794fe
Binary files /dev/null and "b/spider/m3u8\347\261\273\345\236\213\350\247\206\345\261\217\344\270\213\350\275\275.pdf" differ
diff --git a/spider/spider.md b/spider/spider.md
new file mode 100644
index 0000000..06a7b3c
--- /dev/null
+++ b/spider/spider.md
@@ -0,0 +1,30 @@
+# 爬虫进阶笔记
+
+## js操作
+
+### js逆混淆方式
+
+
+
+
+
+## AES加密
+
+
+
+### ecb加密模式
+
+
+
+### cbc加密模式
+
+
+
+### AES代码实现
+
+
+
+## 对称加密
+
+## 非对称加密
+
diff --git a/algorithm/.DS_Store b/spiderProject/.DS_Store
similarity index 88%
rename from algorithm/.DS_Store
rename to spiderProject/.DS_Store
index 814cd59..2900a57 100644
Binary files a/algorithm/.DS_Store and b/spiderProject/.DS_Store differ
diff --git a/spiderProject/.idea/dictionaries/fanding.xml b/spiderProject/.idea/dictionaries/fanding.xml
new file mode 100644
index 0000000..46a7155
--- /dev/null
+++ b/spiderProject/.idea/dictionaries/fanding.xml
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/spiderProject/.idea/misc.xml b/spiderProject/.idea/misc.xml
new file mode 100644
index 0000000..88617a8
--- /dev/null
+++ b/spiderProject/.idea/misc.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/spiderProject/.idea/modules.xml b/spiderProject/.idea/modules.xml
new file mode 100644
index 0000000..66a9811
--- /dev/null
+++ b/spiderProject/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/spiderProject/.idea/spiderProject.iml b/spiderProject/.idea/spiderProject.iml
new file mode 100644
index 0000000..7f73d73
--- /dev/null
+++ b/spiderProject/.idea/spiderProject.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/spiderProject/.idea/workspace.xml b/spiderProject/.idea/workspace.xml
new file mode 100644
index 0000000..37b1706
--- /dev/null
+++ b/spiderProject/.idea/workspace.xml
@@ -0,0 +1,319 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ subproce
+ debugger
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+ DEFINITION_ORDER
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1579662999316
+
+
+ 1579662999316
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/spiderProject/taobao/__init__.py b/spiderProject/taobao/__init__.py
new file mode 100644
index 0000000..8c10786
--- /dev/null
+++ b/spiderProject/taobao/__init__.py
@@ -0,0 +1,4 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+
diff --git a/spiderProject/taobao/taobaoList.py b/spiderProject/taobao/taobaoList.py
new file mode 100644
index 0000000..f9f2b35
--- /dev/null
+++ b/spiderProject/taobao/taobaoList.py
@@ -0,0 +1,51 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+
+
+
+
+'https://market.m.taobao.com/app/tb-source-app/shop-auction/pages/auction?_w&sellerId=394419907&shopId=61193233&disablePromotionTips=true&shop_navi=allitems&displayShopHeader=true'
+
+
+'https://market.m.taobao.com/app/tb-source-app/shop-auction/pages/auction?shopId=61193233'
+
+
+
+import requests
+
+headers = {
+ 'authority': 'h5api.m.taobao.com',
+ 'pragma': 'no-cache',
+ 'cache-control': 'no-cache',
+ 'user-agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1',
+ 'accept': '*/*',
+ 'sec-fetch-site': 'same-site',
+ 'sec-fetch-mode': 'no-cors',
+ 'referer': 'https://h5.m.taobao.com/awp/core/detail.htm?id=6760338930&spm=a2141.7631671.content.2',
+ 'accept-encoding': 'gzip, deflate, br',
+ 'accept-language': 'zh-CN,zh;q=0.9',
+ # 'cookie': '_m_h5_tk=6d79c6dc0bc63e33d4184f5fbb6649a0_1580278908851; _m_h5_tk_enc=7936ab85c1a9c9162330d6519780fd28; cna=9PS3FltrhVICAXSzsT9f3DGu; _samesite_flag_=true; cookie2=1875d4c74bf8b725ff4b6c95cf274cda; t=b5587e3b9447d35f3f692ad600288ada; _tb_token_=3ee8ddef7375a; l=cBjQ9VuIQSzOH4Q_BOCwlurza77O_IRxluPzaNbMi_5Iy6T69__OoqguzF96DjWd97TB4fQqfZv9-etXw2ZBAwlvPIr1.; isg=BMLCuU4JKKyhFjTwOrIEFQb4E84kk8atd49IQQzb7jXgX2LZ9CMWvUieCl0jfD5F',
+}
+
+params = (
+ ('jsv', '2.5.7'),
+ # ('appKey', '12574478'),
+ ('t', '1580271890029'),
+ # ('sign', '3f867c4ebb3855bb006693a7ca9f98ec'),
+ ('api', 'mtop.taobao.detail.getdetail'),
+ ('v', '6.0'),
+ ('isSec', '0'),
+ ('ecode', '0'),
+ ('AntiFlood', 'true'),
+ ('AntiCreep', 'true'),
+ ('H5Request', 'true'),
+ ('ttid', '2018@taobao_h5_9.9.9'),
+ ('type', 'jsonp'),
+ ('dataType', 'jsonp'),
+ ('callback', 'mtopjsonp1'),
+ ('data', '{"id":"6760338930","spm":"a2141.7631671.content.2","itemNumId":"6760338930","itemId":"6760338930","exParams":"{\\"id\\":\\"6760338930\\",\\"spm\\":\\"a2141.7631671.content.2\\"}","detail_v":"8.0.0","utdid":"1"}'),
+)
+
+response = requests.get('https://h5api.m.taobao.com/h5/mtop.taobao.detail.getdetail/6.0/', headers=headers, params=params)
+print(response.text)
diff --git a/spiderProject/videoSpider.py b/spiderProject/videoSpider.py
new file mode 100644
index 0000000..4649e3b
--- /dev/null
+++ b/spiderProject/videoSpider.py
@@ -0,0 +1,83 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+import threading
+import subprocess
+import logging
+
+logging.basicConfig(format='%(asctime)s - %(pathname)s[line:%(lineno)d] - %(levelname)s: %(message)s', level=logging.DEBUG)
+
+
+def m3u8VideoSpider(url, fileName):
+ '''
+ :param url: m3u8文件网络地址
+ :param fileName: 文件名
+ :return:
+ '''
+ cmd = "ffmpeg -i %s -c copy %s.mp4" % (url, fileName)
+ (cmdStatus, output) = subprocess.getstatusoutput(cmd)
+ if cmdStatus:
+ logging.warning('url:%s fileName:%s 下载失败' % (url, fileName))
+ return
+ logging.info('url:%s fileName:%s 下载成功' % (url, fileName))
+
+
+def downloadVideo(downloadInfoMap):
+ '''
+ :param downloadInfoMap: 字典:{'网络m3u8地址':'fileName'}
+ '''
+ threadList = []
+ for url, fileName in downloadInfoMap.items():
+ threadList.append(threading.Thread(target=m3u8VideoSpider, args=(url, fileName)))
+ for threadSingle in threadList:
+ threadSingle.start()
+ for threadSingle in threadList:
+ threadSingle.join()
+ logging.info('下载完成!!!!')
+
+
+if __name__ == '__main__':
+ downloadInfoMap = {
+ 'https://1252524126.vod2.myqcloud.com/9764a7a5vodtransgzp1252524126/37a1f8425285890797904684558/drm/voddrm.token.MjYwOGM4OWUxYTE2ZmQ1YjgxcDlmekdmWVlMQkZHMTBNNnFxMnR2VnFTSlB5WEpkRFdMR0svNUJnSGkrODBKaw.v.f230.m3u8': '第零篇--课程介绍哈哈',
+ # 'https://1252524126.vod2.myqcloud.com/9764a7a5vodtransgzp1252524126/ce74d1e15285890797584942358/drm/voddrm.token.MTQ2NTkwZjViZTk2NmZmOVhZc0tzSEY2TXE1Zmx6YXpjMWltSWEzUElZSVROa0xQWlBBYmNZQ0EzVTVwZ2U1Zg.v.f230.m3u8': '第一篇--追根究底——探寻JavaScript反爬虫的根本原因',
+ # 'https://1252524126.vod2.myqcloud.com/9764a7a5vodtransgzp1252524126/3e7dc05e5285890797904965228/drm/voddrm.token.YmYwMWI5ZjlmODY1NWNmM3ZtK3JsUWIwQm8yTWh1dFpTZG02dS9Ma3lWbjFycXA4Ni9NeW1lMDJXRTNJRXRuag.v.f230.m3u8': '第二篇--浮沙之上——课程中⽤到的JavaScript语法和知识',
+ # 'https://1252524126.vod2.myqcloud.com/9764a7a5vodtransgzp1252524126/761e12535285890797905013790/drm/voddrm.token.YWRhNjgxN2U2MmRkZDAxMjNZVG9xMzhoNEtsMGVIMmpsTFJKZ2Z5VmlZZ0V4MGdnZFFLY0JBeDdwcHI4eEZsLw.v.f230.m3u8': '第三篇--奇⻔遁甲——调用JavaScript执行代码[上]',
+ # 'https://1252524126.vod2.myqcloud.com/9764a7a5vodtransgzp1252524126/3eb1f21f5285890797904991842/drm/voddrm.token.MzcxNGNmNDhhZmZjN2U4MHFDNlhVbjBWYUtPVmUyQk44bUVUWEJ3bi9ITlJWeHFXbWpCSUE3WndEQXR6NEZZcg.v.f230.m3u8': '第三篇--奇⻔遁甲——调用JavaScript执行代码[下]',
+ # 'https://1252524126.vod2.myqcloud.com/9764a7a5vodtransgzp1252524126/8662b5775285890797905708027/drm/voddrm.token.ZTQwYTNiNTMxMGYwMGJlZEhxa0kvQnppWjhYR3pzay9jcm9RRnJBTTBMY0d3OFlqYVNtbGpQNTVLT0VWRFVxbg.v.f230.m3u8': '第四篇--蓄势待发——浏览器开发者⼯具的介绍和使⽤技巧【第一节】',
+ # 'https://1252524126.vod2.myqcloud.com/9764a7a5vodtransgzp1252524126/84776a5a5285890797905663219/drm/voddrm.token.Mjk0YTY0N2I3MWVkMzVkMVcwUyswOEdIcGlTcmd2WmM4U0U0cVFaQTRnSElWb0pTdGJidnplOEdhRWU5TEZwcQ.v.f230.m3u8': '第四篇--蓄势待发——浏览器开发者⼯具的介绍和使⽤技巧【第二节】',
+ # 'https://1252524126.vod2.myqcloud.com/9764a7a5vodtransgzp1252524126/8933f2215285890797905873934/drm/voddrm.token.Yzk3Zjk2ZjU4YmQwMmRmYnR5UVlPZzJnOWZJbWVvZ3dUdE5wOFZHK29SQWZtTmduUE1LUjFMb1JjaEg0TnlOSQ.v.f230.m3u8': '第四篇--蓄势待发——浏览器开发者⼯具的介绍和使⽤技巧【第三节】',
+ # 'https://1252524126.vod2.myqcloud.com/9764a7a5vodtransgzp1252524126/8b1d8fbd5285890797905915555/drm/voddrm.token.YWI0MjczMDUyMDYzYjZlZmxwckNFQ1hXc1FITGdmSklmYUdycjlEbmpvWmJUVTBuRnBMaDhla1BGTFI2aHVmNw.v.f230.m3u8': '第四篇--蓄势待发——浏览器开发者⼯具的介绍和使⽤技巧【第四节】',
+ # 'https://1252524126.vod2.myqcloud.com/9764a7a5vodtransgzp1252524126/8b790d3e5285890797905967018/drm/voddrm.token.MzRiMTgzMmI3MzYzZGUwMHpoNVpxS0NvUkZZNEtNMm4yNjB2UmQ2UTh0cTR1RFhkQlNOT2hGQVBVcktmYklReg.v.f230.m3u8': '第四篇--蓄势待发——浏览器开发者⼯具的介绍和使⽤技巧【总结】',
+ # 'https://1252524126.vod2.myqcloud.com/9764a7a5vodtransgzp1252524126/8b9d54655285890797905987581/drm/voddrm.token.Y2NlOGYwMmMxODA2NDA5Yzg0dXU4MHNUa0hab3NERWlTQm5CTjFyTDd5UUNYWnpUOHhwZGtQNDluWExobjdGRQ.v.f230.m3u8': '第五篇--磨⼑霍霍——常用⼯具的介绍和使⽤技巧【Charles】',
+ # 'https://1252524126.vod2.myqcloud.com/9764a7a5vodtransgzp1252524126/c34dff385285890797906042477/drm/voddrm.token.YzBhNTUxN2U0Yjk1NDBmOGx1Q2VIaWJtZnE0ajZ5Z3E3b0lHM21mREVWSmZoOERnOFZkdE5oQWhoaGRZVGV4SA.v.f230.m3u8': '第五篇--磨⼑霍霍——常用⼯具的介绍和使⽤技巧【EditThisCookie】',
+ # 'https://1252524126.vod2.myqcloud.com/9764a7a5vodtransgzp1252524126/c32d24de5285890797906028749/drm/voddrm.token.YmNjOGQxMjdiMDdmMmEyN3ZMd2xMTGxPSGZqdUlYTStHYWxxN1NSb3JxalhRNkFWMzUzMUkvbnBmWUlBeDFPUA.v.f230.m3u8': '第五篇--磨⼑霍霍——常用⼯具的介绍和使⽤技巧[Toggle_JavaScript]',
+ # 'https://1252524126.vod2.myqcloud.com/9764a7a5vodtransgzp1252524126/c395d8515285890797906081512/drm/voddrm.token.ZGYwMWZjM2VlNmJkNjBhYW1CYzdzK0FvSWVVNmhFUXU0MHB3OGFmYXlIcGpqSVZwSy9sNTBjalZjL0ZYaGxrZw.v.f230.m3u8': '第五篇--磨⼑霍霍——常用⼯具的介绍和使⽤技巧【Tampermonkey】',
+ # 'https://1252524126.vod2.myqcloud.com/9764a7a5vodtransgzp1252524126/c7c3b3b25285890797906215604/drm/voddrm.token.MmQzNjllMThlYTU0NmVjMURYcmRhUWRKaHZxQmxacEVieE9NSmJ4Nm5tMm50TUdJdTJ1QmtsMmZLNUZXb2RMRg.v.f230.m3u8': '第六篇--初窥⻔径——阻挠爬⾍⼯程师的⽆限debugger[上]',
+ # 'https://1252524126.vod2.myqcloud.com/9764a7a5vodtransgzp1252524126/c7f8d8975285890797906243374/drm/voddrm.token.MDlkNWE0ZjE5OGU4MzFjMlNERlVScm5lZ2lLZkplNElLZHlTMFJNRUMyODJGdzVCanBmZUN5UWtsTGpsSFNFag.v.f230.m3u8': '第六篇--初窥⻔径——阻挠爬⾍⼯程师的⽆限debugger[下]',
+ # 'https://1252524126.vod2.myqcloud.com/9764a7a5vodtransgzp1252524126/c80dc7e15285890797906258927/drm/voddrm.token.M2ZlZjZiZGFjNTdjOWM3OER6c09TdGJvN0FHdmtldVRNSGpvYllIbjdoY2RRLzByS1Bsb2pPOHMwM0tLWEtPMg.v.f230.m3u8': '第七篇--⽕眼⾦睛——定位加密参数对应代码位置的⽅法',
+ # 'https://1252524126.vod2.myqcloud.com/9764a7a5vodtransgzp1252524126/3ca204195285890797928323742/drm/voddrm.token.MTAyMWQwZGQ2MDExNmM0M1pJYUx2U05SamwrRlZYSmREODltc0N0alpWbk5XTEJGek4wYWNmd3JkSnBTS20wWg.v.f230.m3u8': '第八篇--拨开云雾——代码混淆的原理【上】',
+ # 'https://1252524126.vod2.myqcloud.com/9764a7a5vodtransgzp1252524126/3cfc76805285890797928373573/drm/voddrm.token.NTIyNDhkYTEyNjYzNjc2ZEpHSVpWSlBkWEdiQ2J3Myt5M3laTkJTNDRQeGJFQWdhT2doTkN6MndsME11dWpuMQ.v.f230.m3u8': '第八篇--拨开云雾——代码混淆的原理【下】',
+ # 'https://1252524126.vod2.myqcloud.com/9764a7a5vodtransgzp1252524126/92caf3f85285890797929700165/drm/voddrm.token.NmZiMDM1YmE4YTQ2YTMyZlE4ZTU2Y3krQnhhN0ZVcjg1amtVVnpJTCs2TTNzemRBYnFYT0xuS2xFcGV0OC9rMA.v.f230.m3u8': '第九篇--⼀击即中——处理常见代码混淆操作的⽅法【第一节】【推荐新手观看】',
+ # 'https://1252524126.vod2.myqcloud.com/9764a7a5vodtransgzp1252524126/92cca9be5285890797929703537/drm/voddrm.token.OTg2ZmIxMWMxNTkyMmIyNGhmZjNHRkVxdVorbW04aHFtc3hDUG5TV3VQcnRwa0cvb3Z3aGovN3FrSlJsZkpDSA.v.f230.m3u8': '第九篇--⼀击即中——处理常见代码混淆操作的⽅法【第二节】【样例一】',
+ # 'https://1252524126.vod2.myqcloud.com/9764a7a5vodtransgzp1252524126/930518255285890797929737249/drm/voddrm.token.ZTJiMjQ4YzVkMTdiNDc1NklRVDh3T0ZtL1h6RTVJQk1CRlAxb0RpM2haVHBRVkxWOUhIT2l1aFpWU3E4Ky9EdQ.v.f230.m3u8': '第九篇--⼀击即中——处理常见代码混淆操作的⽅法【第三节】【样例二】',
+ # 'https://1252524126.vod2.myqcloud.com/9764a7a5vodtransgzp1252524126/934e9c0e5285890797929779495/drm/voddrm.token.MTU4NzUzYTMxZDg2YzEwYjVMU3djZjZ2UmlUYWtBUVNWM3hzUEhRV0g1NVN0TCtHUUYzN0dtZE1jVEI1QWJmKw.v.f230.m3u8': '第九篇--⼀击即中——处理常见代码混淆操作的⽅法【第四节】【样例三】',
+ # 'https://1252524126.vod2.myqcloud.com/9764a7a5vodtransgzp1252524126/957a9a9c5285890797929850208/drm/voddrm.token.N2VlZTIwYTA0ZTJiNDBhM3BPZ1Zkem82RnYyYUE3OWo5M1UxTnh1RjBldkhtZC9Oc3RDWWVCZ1VacVVhN1hxbA.v.f230.m3u8': '第九篇--⼀击即中——处理常见代码混淆操作的⽅法【第五节】【样例四】',
+ # 'https://1252524126.vod2.myqcloud.com/9764a7a5vodtransgzp1252524126/978b34825285890797929917174/drm/voddrm.token.N2JmYWZjM2QxOTRlYjE1OVJyQTFieGRlVk83bmxnOTIraDAvanpFcllQejdURXlOYWhVK2xJWlR1dVkxWlMzeA.v.f230.m3u8': '第九篇--⼀击即中——处理常见代码混淆操作的⽅法【第六节】【样例五】',
+ # 'https://1252524126.vod2.myqcloud.com/9764a7a5vodtransgzp1252524126/98072a815285890797929982360/drm/voddrm.token.OTQ4MGI4OWI4NDcwOWI4MCtEQ2o4ZXN0NElHV1dTemJwSHhDTWxtb2JXTmtTclVtbm1Xbjd6ZzltUFczL1VSNA.v.f230.m3u8': '第九篇--⼀击即中——处理常见代码混淆操作的⽅法【总结】',
+ # 'https://1252524126.vod2.myqcloud.com/9764a7a5vodtransgzp1252524126/07305af65285890797931042783/drm/voddrm.token.NDUwZTg0ZTYwZDM2ZmE5NFFzZGl0bGJwTXBRbjJoc0hsUmNNNHlpUllxLyttNGJkcWtWWGNTNFNzckVJWEp2Vg.v.f230.m3u8': '第十篇--知⼰知彼——掌握常⻅的编码和加密',
+ # 'https://1252524126.vod2.myqcloud.com/9764a7a5vodtransgzp1252524126/e8229f095285890797978957803/drm/voddrm.token.NWE5YjVkNGViYTA0N2VhY1pGVDJmRGtKY3VyYm1CUG1CSVBIV1pXUzlFWUwvRW9QeVU4dU9RT1A4aDMzSmpUeg.v.f230.m3u8': '第十二篇--⼀叶障⽬——服务端返回的神秘字符串',
+ # 'https://1252524126.vod2.myqcloud.com/9764a7a5vodtransgzp1252524126/e830ddaa5285890797978960783/drm/voddrm.token.MWVlZmU2NzU3OWE2ZTk4MHgxRFFLMzFOTHFERUNIbkFJMUszSFRWREtvTTNHSFRmZDZ6ZjJ6VThVamlQaWs1bA.v.f230.m3u8': '第十三篇--螳臂当⻋——解密AES并不是每次都奏效【第一节】',
+ # 'https://1252524126.vod2.myqcloud.com/9764a7a5vodtransgzp1252524126/e80ec4cd5285890797978944199/drm/voddrm.token.ZjIwNWRkYTUwNGY3M2ViOEJBaUlWSEpxSEhTb0F2L1lYdmwzb3o0U3lZSWdYMnRwUkltWHpudWo1L21XOFVqSQ.v.f230.m3u8': '第十三篇--螳臂当⻋——解密AES并不是每次都奏效【第二节】',
+ # 'https://1252524126.vod2.myqcloud.com/9764a7a5vodtransgzp1252524126/e80ebf7b5285890797978944010/drm/voddrm.token.NmNmMWZkYjM1ZGM3ZjhmMVY1WWlBcUVvUThTZFZXT0JsMnZFa1pTT2wwMTZqME9nYm4zY2hYR2N4Qkc2eUZpcw.v.f230.m3u8': '第十三篇--螳臂当⻋——解密AES并不是每次都奏效【总结】',
+ # 'https://1252524126.vod2.myqcloud.com/9764a7a5vodtransgzp1252524126/1ffa30805285890797979037516/drm/voddrm.token.MGVhNzM4YjkxOTY4M2Q4ZjNVVis0SnVjMG56YjVGNGxSZllyWTRkZlVKMnptVXVJOUp1b003MGpyT1NRWjZ2eQ.v.f230.m3u8': '第十四篇--插翅难逃——纵然CSS加身,也难逃命运的安排',
+ # 'https://1252524126.vod2.myqcloud.com/9764a7a5vodtransgzp1252524126/e856bc555285890797978983987/drm/voddrm.token.NGUzMzhiZDY2YWZjNzFiMjBwOGRPTHM0ejl3clpFL002bXVoMWdVS2F2aHJyUDFMVjJWcEdySHVoQk40NmJ3Yw.v.f230.m3u8': '第十五篇--真假猴王——Base64竟有如此威⼒',
+
+ }
+ # import base64
+ # import json
+ # downloadInfoStr = json.dumps(downloadInfoMap)
+ #
+ # encodeStr = base64.b64encode(downloadInfoStr.encode('utf-8'))
+ # print(base64.b64decode(encodeStr))
+ downloadVideo(downloadInfoMap)
+