media-auto-publisher
npx skills add https://github.com/aaaaqwq/claude-code-skills --skill media-auto-publisher
Agent 安装分布
Skill 文档
åªä½èªå¨åå¸å·¥å · (Media Auto Publisher)
éç¨èªåªä½æç« èªå¨åå¸å©æï¼æ¯æç¾å®¶å·ãæçå·ãç¥ä¹ä¸ä¸ªå¹³å°ã
å¿«éå¼å§
åºæ¬ç¨æ³
ç¨æ·: æå¼ç¾å®¶å·åå¸é¡µé¢
ç¨æ·: 帮æè¿å
¥ç¥ä¹åæç«
ç¨æ·: 忢尿çå·å叿ç«
ç¨æ·: 帮æåå¸æç« å°ç¾å®¶å·
æ¯æçå¹³å°
| å¹³å°ä»£ç | å¹³å°åç§° | åå¸é¡µé¢URL | èªå¨åç¶æ |
|---|---|---|---|
baijiahao |
ç¾å®¶å· | https://baijiahao.baidu.com/builder/rc/edit?type=news | â å®å ¨æ¯æ |
sohu |
æçå· | https://mp.sohu.com/api/author/article/new | â å®å ¨æ¯æ |
zhihu |
ç¥ä¹ | https://zhuanlan.zhihu.com/write | â æ¯æCookieç»å½ |
éå¤§æ´æ°ï¼ ä½¿ç¨ Playwright MCP åï¼ç¥ä¹å¯ä»¥éè¿
storageState管çç»å½æï¼ä¸åéè¦è°è¯ç«¯å£ï¼
工使µç¨
æ åå叿µç¨
- ç¡®è®¤å¹³å° – è¯å«ç¨æ·æå®çå¹³å°ï¼ç¾å®¶å·/æç/ç¥ä¹ï¼
- æå¼å¹³å° – 使ç¨
mcp__plugin_playwright_playwright__browser_navigate导èªå°å¹³å°é¦é¡µ - æ£æ¥ç»å½ – éè¿é¡µé¢å¿«ç §éªè¯ç¨æ·æ¯å¦å·²ç»å½
- å ³éå¼¹çª – èªå¨æ£æµå¹¶å ³é广å/æ´»å¨å¼¹çª
- è¿å ¥åå¸é¡µ – 导èªå°æç« åå¸é¡µé¢
- æ¶éä¿¡æ¯ – è¯¢é®æç« æ é¢ãå 容ãå°é¢çä¿¡æ¯
- èªå¨å¡«å – å¡«åæææ¶éå°çä¿¡æ¯
- åå¸æç« – ç¹å»å叿é®å¹¶éªè¯æå
宿´èªå¨åå¸å·¥ä½æµ â
工使µè§¦åæ¡ä»¶
å½ç¨æ·è¯´ä»¥ä¸ä»»ææä»¤æ¶å¯å¨å®æ´å叿µç¨ï¼
- “帮æåå¸æç« å°[å¹³å°]”
- “èªå¨åå¸å°[å¹³å°]”
- “æè¦åå¸æç« “
- “[å¹³å°]åå¸æç« “
åå¸åä¿¡æ¯æ¶é
卿§è¡åå¸åï¼éè¦æé¡ºåºæ¶é以ä¸ä¿¡æ¯ï¼ä½¿ç¨AskUserQuestionå·¥å ·ï¼ï¼
第ä¸é¶æ®µï¼åºç¡å 容ï¼å¿ å¡«ï¼
| åæ®µ | 说æ | ç¤ºä¾ |
|---|---|---|
| æç« æ é¢ | æç« çæ é¢ | “å¦ä½ç¨Pythonèªå¨ååå¸æç« “ |
| æ£æå 容 | Markdownæ ¼å¼çæç« å 容 | “# å¼è¨\nè¿æ¯æ£æ…” |
第äºé¶æ®µï¼å¢å¼ºå 容ï¼å¯éï¼
| åæ®µ | 说æ | éç¨å¹³å° |
|---|---|---|
| å°é¢å¾ç | æ¬å°å¾çè·¯å¾æå¾çURL | å ¨å¹³å° |
| æç« æè¦ | æç« çç®çæè¦ | ç¾å®¶å·/æçå· |
第ä¸é¶æ®µï¼åç±»ä¸æ ç¾ï¼å¯éï¼
| åæ®µ | 说æ | éç¨å¹³å° |
|---|---|---|
| æç« è¯é¢/æ ç¾ | ç¸å ³è¯é¢æ ç¾ï¼å¤ä¸ªç¨éå·åé | å ¨å¹³å° |
| æç¨¿è³é®é¢ | å°æç« æç¨¿å°çç¥ä¹é®é¢ | ç¥ä¹ |
| åç±»/æ ç® | æç« æå±åç±» | ç¾å®¶å·/æçå· |
第åé¶æ®µï¼åå¸è®¾ç½®ï¼å¯éï¼
| åæ®µ | 说æ | éç¨å¹³å° |
|---|---|---|
| åä½å£°æ | åå声æ/转载声æ | å ¨å¹³å° |
| å¯è§æ§è®¾ç½® | å ¬å¼/ä» èªå·±å¯è§/宿¶åå¸ | å ¨å¹³å° |
| 䏿 | åå¸å°æå®ä¸æ | ç¥ä¹ |
åå¹³å°è¯¦ç»å叿¥éª¤
ç¾å®¶å·å®æ´å叿µç¨
python
# æ¥éª¤1ï¼å¯¼èªå°ç¾å®¶å·é¦é¡µ
mcp__plugin_playwright_playwright__browser_navigate(url="https://baijiahao.baidu.com/")
# æ¥éª¤2ï¼æ£æ¥ç»å½ç¶æ
mcp__plugin_playwright_playwright__browser_snapshot()
# æ¥éª¤3ï¼å
³éç¾å®¶å·ç¹æå¼¹çª
mcp__plugin_playwright_playwright__browser_run_code(code='''
async (page) => {
const closeSelectors = ['ä¸ä¸æ¥', 'ç«å³ä½éª', 'æç¥éäº', 'ç¥éäº'];
for (const selector of closeSelectors) {
try {
const element = await page.getByText(selector).first();
if (await element.isVisible()) {
await element.click();
await page.waitForTimeout(500);
}
} catch (e) {}
}
await page.evaluate(() => {
document.querySelectorAll('dialog, [role="dialog"], .tooltip').forEach(el => el.remove());
});
return { success: true };
}
''')
# æ¥éª¤4ï¼è¿å
¥åå¸é¡µé¢ï¼ç´æ¥å¯¼èªï¼
mcp__plugin_playwright_playwright__browser_navigate(url="https://baijiahao.baidu.com/builder/rc/edit?type=news")
# æ¥éª¤5ï¼å¡«åæç« æ é¢
mcp__plugin_playwright_playwright__browser_run_code(code='''
async (page) => {
const titleInput = await page.locator('input[placeholder*="请è¾å
¥æ é¢"]').first();
await titleInput.fill('{æç« æ é¢}');
return { success: true };
}
''')
# æ¥éª¤6ï¼å¡«åæ£æå
容ï¼ç¾å®¶å·å¨iframeä¸ï¼
mcp__plugin_playwright_playwright__browser_run_code(code='''
async (page) => {
const frame = page.frame({ url: /editor/ }) || page.mainFrame();
await frame.locator('[contenteditable="true"], .editor-body').first().fill('{æ£æå
容}');
return { success: true };
}
''')
# æ¥éª¤7ï¼ä¸ä¼ å°é¢å¾ï¼å¦ææä¾ï¼
if å°é¢å¾ç:
mcp__plugin_playwright_playwright__browser_click(ref="ä¸å¾æ¨¡å¼")
for å¾çè·¯å¾ in å°é¢å¾çå表:
mcp__plugin_playwright_playwright__browser_file_upload(paths=["{å¾çè·¯å¾}"])
# æ¥éª¤8ï¼å¡«åæè¦ï¼å¦ææä¾ï¼
if æç« æè¦:
mcp__plugin_playwright_playwright__browser_run_code(code='''
async (page) => {
const summaryInput = await page.locator('textarea[placeholder*="æè¦"]').first();
await summaryInput.fill('{æç« æè¦}');
return { success: true };
}
''')
# æ¥éª¤9ï¼éæ©åç±»ï¼å¦ææä¾ï¼
if æç« åç±»:
mcp__plugin_playwright_playwright__browser_click(ref="åç±»éæ©å¨")
mcp__plugin_playwright_playwright__browser_click(ref="{åç±»}æé®")
# æ¥éª¤10ï¼åå¸å确认
mcp__plugin_playwright_playwright__browser_take_screenshot(path="ç¾å®¶å·åå¸åé¢è§.png")
# æ¥éª¤11ï¼ç¹å»åå¸
mcp__plugin_playwright_playwright__browser_click(ref="å叿é®")
# æ¥éª¤12ï¼éªè¯å叿å
mcp__plugin_playwright_playwright__browser_wait_for(element="å叿åæç¤º", timeout=10000)
æçå·å®æ´å叿µç¨
python
# æ¥éª¤1ï¼å¯¼èªå°æçå·åå¸é¡µ
mcp__plugin_playwright_playwright__browser_navigate(url="https://mp.sohu.com/api/author/article/new")
# æ¥éª¤2ï¼æ£æ¥ç»å½ç¶æ
mcp__plugin_playwright_playwright__browser_snapshot()
# æ¥éª¤3ï¼å
³éå¼¹çªï¼å¦æï¼
mcp__plugin_playwright_playwright__browser_run_code(code='''
async (page) => {
const closeSelectors = ['æç¥éäº', 'ç¥éäº', 'å
³é'];
for (const selector of closeSelectors) {
try {
await page.getByText(selector).first().click();
await page.waitForTimeout(300);
} catch (e) {}
}
return { success: true };
}
''')
# æ¥éª¤4ï¼å¡«åæç« æ é¢
mcp__plugin_playwright_playwright__browser_run_code(code='''
async (page) => {
const titleInput = await page.locator('input[name="title"], input[placeholder*="æ é¢"]').first();
await titleInput.fill('{æç« æ é¢}');
return { success: true };
}
''')
# æ¥éª¤5ï¼å¡«åæ£æå
容
mcp__plugin_playwright_playwright__browser_run_code(code='''
async (page) => {
const editor = await page.locator('#editor, .editor-content, [contenteditable="true"]').first();
await editor.fill('{æ£æå
容}');
return { success: true };
}
''')
# æ¥éª¤6ï¼ä¸ä¼ å°é¢å¾ï¼å¦ææä¾ï¼
if å°é¢å¾ç:
mcp__plugin_playwright_playwright__browser_click(ref="å°é¢ä¸ä¼ æé®")
mcp__plugin_playwright_playwright__browser_file_upload(paths=["{å°é¢å¾çè·¯å¾}"])
# æ¥éª¤7ï¼å¡«åæè¦ï¼å¦ææä¾ï¼
if æç« æè¦:
mcp__plugin_playwright_playwright__browser_run_code(code='''
async (page) => {
const summaryInput = await page.locator('textarea[name="summary"]').first();
await summaryInput.fill('{æç« æè¦}');
return { success: true };
}
''')
# æ¥éª¤8ï¼éæ©æ ç®ï¼å¦ææä¾ï¼
if æç« æ ç®:
mcp__plugin_playwright_playwright__browser_click(ref="æ ç®éæ©å¨")
mcp__plugin_playwright_playwright__browser_click(ref="{æ ç®}æé®")
# æ¥éª¤9ï¼è®¾ç½®åå声æï¼å¦æéè¦ï¼
if åä½å£°æ == "åå":
mcp__plugin_playwright_playwright__browser_click(ref="åå声æå¼å
³")
# æ¥éª¤10ï¼åå¸å确认
mcp__plugin_playwright_playwright__browser_take_screenshot(path="æçå·åå¸åé¢è§.png")
# æ¥éª¤11ï¼ç¹å»åå¸
mcp__plugin_playwright_playwright__browser_click(ref="å叿é®")
# æ¥éª¤12ï¼éªè¯å叿å
mcp__plugin_playwright_playwright__browser_wait_for(element="å叿å", timeout=10000)
ç¥ä¹å®æ´å叿µç¨
python
# æ¥éª¤1ï¼å¯¼èªå°ç¥ä¹åæç« 页é¢
mcp__plugin_playwright_playwright__browser_navigate(url="https://zhuanlan.zhihu.com/write")
# æ¥éª¤2ï¼æ£æ¥ç»å½ç¶æ
mcp__plugin_playwright_playwright__browser_snapshot()
# æ¥éª¤3ï¼å
³éå¼¹çªï¼å¦æï¼
mcp__plugin_playwright_playwright__browser_run_code(code='''
async (page) => {
const closeSelectors = ['è·³è¿', '以åå说', 'ä¸åæç¤º'];
for (const selector of closeSelectors) {
try {
await page.getByText(selector).first().click();
await page.waitForTimeout(300);
} catch (e) {}
}
return { success: true };
}
''')
# æ¥éª¤4ï¼å¡«åæç« æ é¢
mcp__plugin_playwright_playwright__browser_run_code(code='''
async (page) => {
const titleInput = await page.locator('.WriteIndex-titleInput, input[placeholder*="请è¾å
¥æ é¢"]').first();
await titleInput.fill('{æç« æ é¢}');
return { success: true };
}
''')
# æ¥éª¤5ï¼å¡«åæ£æå
容
mcp__plugin_playwright_playwright__browser_run_code(code='''
async (page) => {
const editor = await page.locator('.PublicDraftEditor-content, [contenteditable="true"]').first();
await editor.fill('{æ£æå
容}');
return { success: true };
}
''')
# æ¥éª¤6ï¼ä¸ä¼ å°é¢å¾ï¼å¦ææä¾ï¼
if å°é¢å¾ç:
mcp__plugin_playwright_playwright__browser_run_code(code='''
async (page) => {
await page.locator('.UploadCoverButton, [class*="upload"]').first().click();
return { success: true };
}
''')
mcp__plugin_playwright_playwright__browser_file_upload(paths=["{å°é¢å¾çè·¯å¾}"])
# æ¥éª¤7ï¼æ·»å è¯é¢æ ç¾ï¼å¦ææä¾ï¼
if æç« è¯é¢:
for è¯é¢ in æç« è¯é¢å表:
mcp__plugin_playwright_playwright__browser_run_code(code='''
async (page) => {
await page.locator('text=æ·»å è¯é¢, .TopicEditor-input').first().click();
await page.locator('input[placeholder*="æç´¢è¯é¢"]').fill('{è¯é¢}');
await page.waitForTimeout(500);
await page.locator('.TopicItem, [role="option"]').first().click();
return { success: true };
}
''')
# æ¥éª¤8ï¼æç¨¿è³é®é¢ï¼å¦ææä¾ï¼
if æç¨¿è³é®é¢:
mcp__plugin_playwright_playwright__browser_run_code(code='''
async (page) => {
await page.locator('text=æç¨¿è³é®é¢, .PublishToQuestion').first().click();
await page.locator('input[placeholder*="æç´¢é®é¢"]').fill('{é®é¢æ é¢}');
await page.waitForTimeout(500);
await page.locator('.QuestionItem, [role="option"]').first().click();
return { success: true };
}
''')
# æ¥éª¤9ï¼è®¾ç½®åä½å£°æï¼å¦æéè¦ï¼
if åä½å£°æ:
mcp__plugin_playwright_playwright__browser_run_code(code='''
async (page) => {
await page.locator('button[class*="setting"], text=设置').first().click();
await page.locator('text={声æç±»å}').first().click();
return { success: true };
}
''')
# æ¥éª¤10ï¼éæ©ä¸æ ï¼å¦ææä¾ï¼
if åå¸ä¸æ :
mcp__plugin_playwright_playwright__browser_run_code(code='''
async (page) => {
await page.locator('text=鿩䏿 , .ColumnSelector').first().click();
await page.locator('text={䏿 åç§°}').first().click();
return { success: true };
}
''')
# æ¥éª¤11ï¼åå¸å确认
mcp__plugin_playwright_playwright__browser_take_screenshot(path="ç¥ä¹åå¸åé¢è§.png")
# æ¥éª¤12ï¼ç¹å»åå¸
mcp__plugin_playwright_playwright__browser_run_code(code='''
async (page) => {
const publishBtn = await page.getByText('åå¸').first();
await publishBtn.click();
return { success: true };
}
''')
# æ¥éª¤13ï¼éªè¯å叿å
mcp__plugin_playwright_playwright__browser_wait_for(element="å叿å", timeout=10000)
åå¹³å°åæ®µéæ©å¨éæ¥è¡¨
| åæ®µ | ç¾å®¶å·éæ©å¨ | æçå·éæ©å¨ | ç¥ä¹éæ©å¨ |
|---|---|---|---|
| æ é¢è¾å ¥æ¡ | input[placeholder*=”请è¾å ¥æ 颔] | input[name=”title”] | .WriteIndex-titleInput |
| æ£æç¼è¾å¨ | iframe .editor-body | #editor | .PublicDraftEditor-content |
| å°é¢ä¸ä¼ | .upload-cover-btn | .cover-upload | .UploadCoverButton |
| æè¦è¾å ¥æ¡ | textarea[placeholder*=”æè¦”] | textarea[name=”summary”] | â 䏿¯æ |
| åç±»éæ©å¨ | .category-select | .column-select | â ç¨è¯é¢æ¿ä»£ |
| è¯é¢è¾å ¥æ¡ | â 䏿¯æ | .tag-input | .TopicEditor-input |
| æç¨¿é®é¢ | â 䏿¯æ | â 䏿¯æ | .PublishToQuestion |
| åå¸æé® | button:has-text(“å帔) | button.publish-btn | button:has-text(“å帔) |
è´¦å·åæ¢æµç¨ï¼æ¨èï¼
Playwright MCP æ¯æéè¿ storageState 管çå¤ä¸ªè´¦å·ï¼
ä¿åç»å½æï¼é¦æ¬¡ï¼ï¼
// 1. æå¨ç»å½ä¸æ¬¡å¹³å°
await page.goto("https://www.zhihu.com")
// ... ç¨æ·æå¨ç»å½ ...
// 2. ä¿åç»å½ç¶æ
await context.storageState({ path: 'zhihu_account1.json' })
åæ¢è´¦å·ï¼
// å 载已ä¿åçç»å½æ
const context = await browser.newContext({
storageState: 'zhihu_account1.json'
})
å ³é®æä»¶
scripts/media_publisher.py 主æ§è¡èæ¬
å¿«éæå¼å¹³å°ï¼
python scripts/media_publisher.py baijiahao
python scripts/media_publisher.py open baijiahao
æ¥çå¹³å°ä¿¡æ¯ï¼
python scripts/media_publisher.py info baijiahao
çæå·¥ä½æµç¨ï¼
python scripts/media_publisher.py workflow baijiahao
python scripts/media_publisher.py workflow sohu --output workflow.json --format json
æ£æ¥ç»å½ç¶æï¼
python scripts/media_publisher.py check-login baijiahao
python scripts/media_publisher.py check-login sohu --snapshot snapshot.txt
æ£æµå¼¹çªï¼
python scripts/media_publisher.py detect-popup baijiahao
python scripts/media_publisher.py detect-popup sohu --snapshot snapshot.txt
scripts/cookie_manager.py
常ç¨å½ä»¤ï¼
python scripts/cookie_manager.py save zhihu --account "è´¦å·1"
python scripts/cookie_manager.py list
python scripts/cookie_manager.py switch zhihu "è´¦å·1"
scripts/platform_navigator.py
å¹³å°å¯¼èªå©æï¼æä¾åå¹³å°ç导èªé ç½®åå¼¹çªæ£æµé»è¾ã
ç»å½ç¶ææ£æµ
ç¾å®¶å·ï¼æ£æµé¡µé¢ä¸æ¯å¦åå¨ å¤´åãåå¸ä½åãå 容管ç çå ç´
æçå·ï¼æ£æµé¡µé¢ä¸æ¯å¦åå¨ åå¸æç« ãå 容管çã个人ä¸å¿ çå ç´
ç¥ä¹ï¼æ£æµé¡µé¢ä¸æ¯å¦åå¨ åæç« ãé¦é¡µãéç¥ãç§ä¿¡ çå ç´
å¼¹çªèªå¨å ³é
ç¾å®¶å·ç¹æå¼¹çªå¤ç
python
mcp__plugin_playwright_playwright__browser_run_code(code='''
async (page) => {
const closeSelectors = ['ä¸ä¸æ¥', 'ç«å³ä½éª', 'æç¥éäº', 'ç¥éäº'];
for (const selector of closeSelectors) {
try {
const element = await page.getByText(selector).first();
if (await element.isVisible()) {
await element.click();
await page.waitForTimeout(500);
}
} catch (e) {}
}
await page.evaluate(() => {
document.querySelectorAll('dialog, [role="dialog"], .tooltip').forEach(el => el.remove());
});
return { success: true };
}
''')
åå¹³å°å¸¸è§å¼¹çªå ³é®è¯
| å¹³å° | å ³éæé®å ³é®è¯ |
|---|---|
| ç¾å®¶å· | æç¥éäºãä¸ä¸æ¥ãç«å³ä½éªãå ³éãà |
| æçå· | æç¥éäºãç¥éäºãå ³éãà |
| ç¥ä¹ | è·³è¿ã以åå说ãä¸åæç¤ºãå ³é |
MCPå·¥å ·è°ç¨åºå
Playwright MCP å·¥å ·æ å°
| åè½ | Chrome DevTools MCP | Playwright MCP |
|---|---|---|
| å¯¼èª | navigate_page | browser_navigate |
| å¿«ç § | take_snapshot | browser_snapshot |
| ç¹å» | click | browser_click |
| å¡«å | fill | browser_fill_form / browser_type |
| æªå¾ | – | browser_take_screenshot |
| çå¾ | – | browser_wait_for |
| æ§è¡ä»£ç | – | browser_run_code |
| æä»¶ä¸ä¼ | – | browser_file_upload |
ç¥ä¹ç»å½è§£å³æ¹æ¡
æ¹æ¡ä¸ï¼ä½¿ç¨ storageStateï¼æ¨èï¼
await browser.newContext({
storageState: 'zhihu_cookies.json'
})
æ¥éª¤ï¼
- å ç¨æ®é Chrome ç»å½ç¥ä¹
- ä½¿ç¨ browser_run_code å¯¼åº cookies
- ä¿å为 storageState æä»¶
- åç»ç´æ¥å 载该æä»¶å®ç°å ç»å½
æ éå¤ç
| é®é¢ | è§£å³æ¹æ¡ |
|---|---|
| æªç»å½ | æç¤ºç¨æ·å ç»å½å¹¶ä¿å storageState |
| Cookie失æ | 使ç¨cookie_manager.pyéæ°ä¿åç»å½ç¶æ |
| å¼¹çªæ æ³å ³é | æå¨æªå¾ï¼åæå¼¹çªç»æåæ´æ°å ³éè§å |
| 页é¢å è½½è¶ æ¶ | 使ç¨browser_wait_forå¢å çå¾ æ¶é´ |
| ç¥ä¹åç¬ | Playwright ç storageState 坿æç»è¿æ£æµ |
| å¡«å失败 | 使ç¨browser_run_codeç´æ¥æ§è¡JavaScript |
Playwright MCP ä¼å¿
| ç¹æ§ | Chrome DevTools | Playwright |
|---|---|---|
| ç¥ä¹ç»å½ | éè¦è°è¯ç«¯å£ | storageState æ¯æ |
| 夿µè§å¨ | ä» Chrome | Chrome/Firefox/Safari |
| Cookie管ç | æå¨å¯¼å ¥ | storageState() API |
| åç¬æ£æµ | èªå¨åç¹å¾ææ¾ | å¯ä¼ªè£ ç宿µè§å¨ |
| è·¨å¹³å° | ä¾èµ Chrome | å¤å¼ææ¯æ |
| æä»¶ä¸ä¼ | éè¦ç¹æ®å¤ç | browser_file_upload |
注æäºé¡¹
- 馿¬¡ç»å½ – 馿¬¡ä½¿ç¨éè¦ç¨æ·æå¨ç»å½å¹³å°å¹¶ä¿å storageState
- StorageStateä½ç½® – ç»å½æä¿åå¨ ~/.claude/media-auto-publisher/storage_states/
- 平尿´æ° – å¹³å°UIæ´æ°å¯è½éè¦æ´æ°éæ©å¨åæç¤ºå¨
- é¢çéå¶ – é¿å é¢ç¹æä½è§¦åå¹³å°åç¬æºå¶
- ç¥ä¹æ¯æ – Playwright å¯ä»¥éè¿ storageState å®ç°ç¥ä¹å ç»å½åå¸
- å 容é¢è§ – åå¸åå¡å¿ æªå¾é¢è§ï¼ç¡®è®¤å 容æ 误
Playwright é«çº§ç¨æ³
ä¼ªè£ ç宿µè§å¨
async (page) => {
await page.setExtraHTTPHeaders({
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36'
});
await page.addInitScript(() => {
Object.defineProperty(navigator, 'webdriver', {
get: () => false
});
});
await page.goto('https://zhuanlan.zhihu.com/write');
}
æ¹éåå¸ç®¡ç
python scripts/cookie_manager.py list
python scripts/cookie_manager.py save zhihu --account "主账å·"
python scripts/cookie_manager.py save zhihu --account "å°å·"