← ClaudeAtlas

cnki-journal-searchlisted

Search for journals/publications on CNKI by name, ISSN, CN, or sponsor. Use when the user wants to find a specific journal or browse publications.
Jensen-Yao/agents-skills · ★ 0 · AI & Automation · score 68
Install: claude install-skill Jensen-Yao/agents-skills
# CNKI Journal Search (期刊检索) ## Arguments `the user request` is a journal name, ISSN, CN number, or sponsor name. ## Steps ### 1. Navigate Use `chrome-devtools.navigate_page` → `https://navi.cnki.net/knavi` ### 2. Search + extract results (single evaluate_script, NO wait_for) Use `chrome-devtools.evaluate_script`. Replace `QUERY_HERE` with actual search term: ```javascript async () => { const query = "QUERY_HERE"; // Wait for page load await new Promise((r, j) => { let n = 0; const c = () => { if (document.querySelector('input.researchbtn')) r(); else if (++n > 30) j('timeout'); else setTimeout(c, 500); }; c(); }); // Check captcha (visible on screen, not hidden SDK at top:-1000000) const outer = document.querySelector('#tcaptcha_transform_dy'); if (outer && outer.getBoundingClientRect().top >= 0) return { error: 'captcha' }; // Auto-detect search type and fill const select = document.querySelector('select'); if (select) { if (/^\d{4}-\d{3}[\dXx]$/.test(query)) select.value = 'ISSN'; else if (/^\d{2}-\d{4}/.test(query)) select.value = 'CN'; select.dispatchEvent(new Event('change', { bubbles: true })); } const input = document.querySelector('input[placeholder*="检索词"]'); if (input) input.value = query; // Click search button (verified selector: input.researchbtn) document.querySelector('input.researchbtn')?.click(); // Wait for results await new Promise((r, j) => { let n = 0; const c = () => { if (d