con un clic
ieee-journal-browse
// Browses a journal or conference on IEEE Xplore — views info, impact factor, latest articles, and specific issues. Use when the user asks about a journal/conference or wants to browse its contents.
// Browses a journal or conference on IEEE Xplore — views info, impact factor, latest articles, and specific issues. Use when the user asks about a journal/conference or wants to browse its contents.
Performs advanced search on IEEE Xplore with filters like author, title, publication, year, DOI. Use when the user wants filtered academic paper search.
Downloads PDF from IEEE Xplore articles. Requires institutional or subscriber access. Use when the user wants to download a paper PDF by article number.
Exports citations from IEEE Xplore in RIS, BibTeX, or plain text format. Supports pushing to Zotero. Use when the user wants to export or save citation data for papers.
Navigates pages, changes sort order, or adjusts results per page on IEEE Xplore search results. Use when the user wants to go to the next page, sort by date or citations, or change results per page.
Extracts full metadata from an IEEE Xplore article page (abstract, authors, keywords, DOI, references, PDF link). Use when the user wants details about a specific paper.
Re-parses the currently open IEEE Xplore search results page. Internal skill used by other skills to extract structured data without navigation.
| name | ieee-journal-browse |
| description | Browses a journal or conference on IEEE Xplore — views info, impact factor, latest articles, and specific issues. Use when the user asks about a journal/conference or wants to browse its contents. |
| argument-hint | [journal name or punumber] |
Browse journal or conference information, metrics, and articles on IEEE Xplore.
| Page | URL |
|---|---|
| Journal home | {BASE_URL}/xpl/RecentIssue.jsp?punumber={PUNUMBER} |
| Popular articles | {BASE_URL}/xpl/topAccessedArticles.jsp?punumber={PUNUMBER} |
| Current issue | {BASE_URL}/xpl/mostRecentIssue.jsp?punumber={PUNUMBER} |
| All issues | {BASE_URL}/xpl/issues?punumber={PUNUMBER} |
| About journal | {BASE_URL}/xpl/aboutJournal.jsp?punumber={PUNUMBER} |
| Early access | {BASE_URL}/xpl/tocresult.jsp?isnumber={ISNUMBER} |
| Conference home | {BASE_URL}/xpl/conhome/{PUNUMBER}/proceeding |
The punumber (publication number) is the unique identifier for journals and conferences on IEEE Xplore.
| Journal | punumber |
|---|---|
| IEEE Trans. Pattern Analysis and Machine Intelligence (TPAMI) | 34 |
| IEEE Trans. Neural Networks and Learning Systems (TNNLS) | 5962 |
| IEEE Trans. Image Processing (TIP) | 83 |
| IEEE Access | 6287639 |
| IEEE Trans. Information Forensics and Security (TIFS) | 10206 |
| IEEE Communications Surveys & Tutorials | 9739 |
| IEEE Internet of Things Journal | 6488907 |
If the user provides a journal name instead of a punumber, search for the journal first, or try constructing the URL from the name.
Use navigate_page with initScript:
navigate_page({
url: "{BASE_URL}/xpl/RecentIssue.jsp?punumber={PUNUMBER}",
initScript: "Object.defineProperty(navigator, 'webdriver', {get: () => undefined})"
})
For conferences, use:
{BASE_URL}/xpl/conhome/{PUNUMBER}/proceeding
Use evaluate_script with built-in waiting. Do NOT use wait_for.
async () => {
// Wait for journal content to load (up to 15s)
for (let i = 0; i < 30; i++) {
if (document.querySelector('h1') && document.querySelectorAll('a[href*="/document/"]').length > 0) break;
await new Promise(r => setTimeout(r, 500));
}
const result = {};
// Journal name
result.name = document.querySelector('h1')?.textContent?.trim() || '';
// Metrics
const metricsContainer = document.querySelector('[class*="publication-info"]') || document.body;
const allText = metricsContainer.innerText || '';
const ifMatch = allText.match(/([\d.]+)\s*Impact Factor/);
const efMatch = allText.match(/([\d.]+)\s*Eigenfactor/);
const aiMatch = allText.match(/([\d.]+)\s*Article Influence/);
const csMatch = allText.match(/([\d.]+)\s*CiteScore/);
result.impactFactor = ifMatch ? ifMatch[1] : '';
result.eigenfactor = efMatch ? efMatch[1] : '';
result.articleInfluence = aiMatch ? aiMatch[1] : '';
result.citeScore = csMatch ? csMatch[1] : '';
// Tabs available
const tabs = [...document.querySelectorAll('.tabs a, .nav-tabs a, [class*="tab-link"]')];
result.tabs = tabs.map(a => ({
text: a.textContent.trim(),
href: a.href || ''
})).filter(t => t.text).slice(0, 10);
// Latest/popular articles on the page
result.articles = [];
const articleLinks = document.querySelectorAll('a[href*="/document/"]');
const seen = new Set();
articleLinks.forEach(link => {
const title = link.textContent.trim();
const arnumber = link.href.match(/\/document\/(\d+)/)?.[1] || '';
if (title && arnumber && !seen.has(arnumber) && title.length > 10) {
seen.add(arnumber);
result.articles.push({ title: title.substring(0, 150), arnumber, url: link.href });
}
});
result.articles = result.articles.slice(0, 15);
// ISSN from page
const pageText = document.body.innerText;
const issnMatch = pageText.match(/ISSN[:\s]*([\d-X]+)/i);
result.issn = issnMatch ? issnMatch[1] : '';
// Publication number
const urlMatch = window.location.href.match(/punumber=(\d+)/);
result.punumber = urlMatch ? urlMatch[1] : '';
return result;
}
## {name}
**Impact Factor**: {impactFactor}
**CiteScore**: {citeScore}
**Eigenfactor**: {eigenfactor}
**Article Influence Score**: {articleInfluence}
**ISSN**: {issn}
**PUNUMBER**: {punumber}
### Available Sections
{tabs}
### Articles
1. {title} (Article #: {arnumber})
2. ...
If the user asks for a specific volume/issue, navigate to {BASE_URL}/xpl/tocresult.jsp?punumber={PUNUMBER}&isnumber={ISNUMBER} and extract the article list.
To find issue numbers, navigate to the "All Issues" page first:
{BASE_URL}/xpl/issues?punumber={PUNUMBER}
punumber is the primary identifier for journals and conferences on IEEE Xplore.initScript on every navigate_page call.navigate_page + evaluate_script.