【Python】showdoc文档下载到本地
·
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)
更多推荐
所有评论(0)