Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
yuanyuanma03 avatar

Sd Parse Results

  • 19 installs
  • 45 repo stars
  • Updated June 23, 2026
  • yuanyuanma03/academic-research-skills

Re-parse the currently open ScienceDirect search results page into structured paper data without navigating.

About

Extracts structured results from an already-open ScienceDirect results page via DOM scraping. It is an internal helper used after manual navigation or a sort/filter change.

  • Verifies it is on a /search page before extracting
  • Reads result items directly from the current DOM

Sd Parse Results by the numbers

  • 19 all-time installs (skills.sh)
  • Ranked #1,308 of 2,715 Automation & Workflows skills by installs in the Skillselion catalog
  • Data as of Aug 3, 2026 (Skillselion catalog sync)
npx skills add https://github.com/yuanyuanma03/academic-research-skills --skill sd-parse-results

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs19
repo stars45
Last updatedJune 23, 2026
Repositoryyuanyuanma03/academic-research-skills

What it does

Re-parse the currently open ScienceDirect search results page into structured paper data without navigating.

Files

SKILL.mdMarkdownGitHub ↗

Parse Current ScienceDirect Results Page

Extract structured data from an already-open ScienceDirect search results page without navigating.

When to use

  • After the user has manually navigated to a search results page
  • When re-parsing results after sorting or filtering changes
  • Called internally by other skills

Steps

Step 1: Extract results from current page

Use evaluate_script (no navigation needed):

() => {
  // Verify we are on a search results page
  if (!window.location.pathname.includes('/search')) {
    return { error: 'Not on a ScienceDirect search results page.' };
  }

  const items = document.querySelectorAll('li.ResultItem');
  if (items.length === 0) {
    return { error: 'No results found on the current page. The page may still be loading.' };
  }

  const papers = [];
  for (let i = 0; i < items.length; i++) {
    const item = items[i];
    const titleLink = item.querySelector('a.result-list-title-link');
    const journal = item.querySelector('a.subtype-srctitle-link');
    const dateSpans = item.querySelectorAll('.srctitle-date-fields > span');
    const date = dateSpans.length > 1 ? dateSpans[dateSpans.length - 1].textContent.trim() : '';
    const authors = [...item.querySelectorAll('.Authors .author')].map(a => a.textContent.trim());
    const doi = item.getAttribute('data-doi');
    const pii = titleLink?.href?.match(/pii\/(\w+)/)?.[1] || '';
    const articleType = item.querySelector('.article-type')?.textContent?.trim() || '';
    const isOpenAccess = !!item.querySelector('.access-label');
    const checkboxId = item.querySelector('.checkbox-input')?.id || '';

    papers.push({
      rank: i + 1,
      title: titleLink?.textContent?.trim() || '',
      pii, doi: doi || '',
      journal: journal?.textContent?.trim() || '',
      date, authors, articleType, openAccess: isOpenAccess,
      checkboxId,
    });
  }

  const totalText = document.querySelector('.search-body-results-text')?.textContent?.trim() || '';
  const pageInfo = document.querySelector('.Pagination li:first-child')?.textContent?.trim() || '';
  const currentUrl = window.location.href;

  return { papers, totalResults: totalText, pageInfo, currentUrl };
}

Step 2: Return structured data

Return the extracted data. The checkboxId field (= PII) is important for batch export and download operations.

Notes

  • This skill uses only 1 tool call (evaluate_script).
  • It does NOT navigate — it reads the current page as-is.
  • If results are empty, the page may still be loading; consider adding a wait loop inside the script or retrying after a brief delay.

Related skills

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.