欢迎光临
我们一直在努力

Python 自动化下载夸克网盘分享文件:基于 Playwright 的完整实现(含登录态持久化与提取码处理)

使用 Playwright 自动化下载夸克网盘文件

Playwright 是一个强大的浏览器自动化工具,支持 Chromium、Firefox 和 WebKit。通过 Playwright 可以模拟用户操作,实现夸克网盘文件的自动化下载。

安装 Playwright Python 包:

pip install playwright
playwright install

初始化浏览器上下文

创建持久化上下文保存登录状态,避免每次运行都需要重新登录:

from playwright.sync_api import sync_playwright

with sync_playwright() as p:
browser = p.chromium.launch(headless=False)
context = browser.new_context(storage_state="auth.json")
page = context.new_page()

处理夸克网盘登录

手动登录后保存认证信息:

page.goto("https://pan.quark.cn/")
input("请手动登录后按回车继续…")
context.storage_state(path="auth.json")

解析分享链接和提取码

从分享链接中提取关键参数:

def parse_share_url(share_url):
import re
pattern = r"pan\\.quark\\.cn/s/([0-9a-f]+)(?:\\?pwd=([a-zA-Z0-9]+))?"
match = re.search(pattern, share_url)
if not match:
raise ValueError("无效的夸克分享链接")
return match.group(1), match.group(2) if match.group(2) else None

自动填写提取码并获取文件

处理需要提取码的分享链接:

share_id, pwd = parse_share_url(share_url)
page.goto(f"https://pan.quark.cn/s/{share_id}")

if pwd:
page.fill("input[placeholder='请输入提取码']", pwd)
page.click("text=确定")

page.wait_for_selector(".file-list")
download_btn = page.query_selector("text=下载")
download_btn.click()

处理大文件下载限制

夸克网盘对大文件需要客户端下载,可通过拦截请求获取真实下载地址:

with page.expect_download() as download_info:
download_btn.click()
download = download_info.value
print(f"下载路径: {download.path()}")

 

完整代码示例

from playwright.sync_api import sync_playwright
import re

def download_quark_file(share_url, headless=False):
with sync_playwright() as p:
browser = p.chromium.launch(headless=headless)
context = browser.new_context(storage_state="auth.json")
page = context.new_page()

share_id, pwd = parse_share_url(share_url)
page.goto(f"https://pan.quark.cn/s/{share_id}")

if pwd:
page.fill("input[placeholder='请输入提取码']", pwd)
page.click("text=确定")

page.wait_for_selector(".file-list")
with page.expect_download() as download_info:
page.click("text=下载")

download = download_info.value
print(f"文件已下载到: {download.path()}")
browser.close()

注意事项

  • 首次运行需要手动登录并保存认证信息
  • 大文件下载可能需要夸克客户端
  • 频繁操作可能触发反爬机制
  • 下载路径根据系统不同可能有所变化
  • 建议添加适当的等待时间和错误处理

通过以上方法可以实现夸克网盘分享文件的自动化下载,包含登录态持久化和提取码处理功能。根据实际需求可以进一步扩展批量下载、进度监控等功能。

赞(0)
未经允许不得转载:171主机测评 » Python 自动化下载夸克网盘分享文件:基于 Playwright 的完整实现(含登录态持久化与提取码处理)
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址