-
Notifications
You must be signed in to change notification settings - Fork 70
/
Copy pathhavepassword.py
76 lines (59 loc) · 2.5 KB
/
havepassword.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
import os
import asyncio
from main import getFiles, downloadFiles, header,wildcardsMatchFiles
from pprint import pprint
OneDriveShareURL = "https://jia666-my.sharepoint.com/:f:/g/personal/1025_xkx_me/EsqNMFlDoyZKt-RGcsI1F2EB6AiQMBIpQM4Ka247KkyOQw?e=oC1y7r"
OneDriveSharePwd = "xkx"
aria2Link = "http://localhost:6800/jsonrpc"
aria2Secret = "123456"
isDownload = False
downloadNum = "1,2-4,5" # 1,2,3,4,5
os.environ['PYPPETEER_HOME'] = os.path.split(os.path.realpath(__file__))[0]
# os.environ['PYPPETEER_DOWNLOAD_HOST'] = "http://npm.taobao.org/mirrors"
from pyppeteer import launch
pheader = {}
url = ""
async def main(iurl, password):
global pheader, url
browser = await launch(options={'args': ['--no-sandbox']})
page = await browser.newPage()
await page.goto(iurl, {'waitUntil': 'networkidle0'})
await page.focus("input[id='txtPassword']")
await page.keyboard.type(password)
verityElem = await page.querySelector("input[id='btnSubmitPassword']")
print("密码输入完成,正在跳转")
await asyncio.gather(
page.waitForNavigation(),
verityElem.click(),
)
url = await page.evaluate('window.location.href', force_expr=True)
await page.screenshot({'path': 'example.png'})
print("正在获取Cookie")
# print(p.headers, p.url)
_cookie = await page.cookies()
pheader = ""
for __cookie in _cookie:
coo = "{}={};".format(__cookie.get("name"), __cookie.get("value"))
pheader += coo
await browser.close()
def havePwdGetFiles(iurl, password):
global header
print("正在启动无头浏览器模拟输入密码")
asyncio.get_event_loop().run_until_complete(main(iurl, password))
print("无头浏览器关闭,正在获取文件列表")
print()
header['cookie'] = pheader
print(getFiles(url, None, 0))
def havePwdDownloadFiles(iurl, password, aria2URL, token, num=-1):
global header
print("正在启动无头浏览器模拟输入密码")
asyncio.get_event_loop().run_until_complete(main(iurl, password))
print("无头浏览器关闭,正在获取文件列表")
header['cookie'] = pheader
downloadFiles(url, None, 0, aria2URL, token, num=num)
if __name__ == "__main__":
if isDownload:
havePwdDownloadFiles(OneDriveShareURL, OneDriveSharePwd, aria2Link,
aria2Secret, num=wildcardsMatchFiles(downloadNum))
else:
havePwdGetFiles(OneDriveShareURL, OneDriveSharePwd)