import html

import requests

headers = {
    "authority": "showdoc-server.cdn.dfyun.com.cn",
    "accept": "application/json, text/plain, */*",
    "accept-language": "zh-CN,zh;q=0.9",
    "cache-control": "no-cache",
    "content-type": "application/x-www-form-urlencoded",
    "origin": "https://www.showdoc.com.cn",
    "pragma": "no-cache",
    "referer": "https://www.showdoc.com.cn/",
    "sec-ch-ua": "\"Not)A;Brand\";v=\"24\", \"Chromium\";v=\"116\"",
    "sec-ch-ua-mobile": "?0",
    "sec-ch-ua-platform": "\"Windows\"",
    "sec-fetch-dest": "empty",
    "sec-fetch-mode": "cors",
    "sec-fetch-site": "cross-site",
    "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.5845.97 Safari/537.36 Core/1.116.489.400 QQBrowser/13.7.6351.400"
}


def get_index():
    url = "https://showdoc-server.cdn.dfyun.com.cn/server/index.php"
    params = {
        "s": "/api/item/info"
    }
    data = {
        "item_id": parts[0],
        "keyword": "",
        "_item_pwd": password
    }
    response = requests.post(url, headers=headers, params=params, data=data)
    return response.json()


def get_page(page_id):
    url = "https://showdoc-server.cdn.dfyun.com.cn/server/index.php"
    params = {
        "s": "/api/page/info"
    }
    data = {
        "page_id": page_id,
        "_item_pwd": password
    }
    response = requests.post(url, headers=headers, params=params, data=data)
    return response.json()


def visit_catalog(catalog):
    for page in catalog["pages"]:
        print(page["page_title"])
        f.write(f'### {page["page_title"]}\n')
        page_detail = get_page(page["page_id"])
        f.write(html.unescape(page_detail["data"]["page_content"]).replace("\\_", "_") + "\n")

    for item in catalog["catalogs"]:
        print(item["cat_name"])
        f.write(f'## {item["cat_name"]}\n')
        visit_catalog(item)


if __name__ == '__main__':
    # 文档链接地址
    showdoc_share_url = "https://www.showdoc.com.cn/xxx"
    # 文档密码 没有密码为None即可
    # password = "123"
    password = None

    parts = showdoc_share_url.replace("https://www.showdoc.com.cn/", "").split("/")
    index = get_index()
    filename = index["data"]["item_name"]
    with open(f"{filename}.md", "w", encoding="utf-8") as f:
        for page in index["data"]["menu"]["pages"]:
            print(page["page_title"])
            f.write(f'### {page["page_title"]}\n')
            page_detail = get_page(page["page_id"])
            f.write(html.unescape(page_detail["data"]["page_content"]).replace("\\_", "_") + "\n")

        for catalog in index["data"]["menu"]["catalogs"]:
            print(catalog["cat_name"])
            f.write(f'# {catalog["cat_name"]}\n')
            visit_catalog(catalog)
Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐