通过机构访问在Web of Science搜索学术文献,按期刊、影响因子或日期筛选,并自动将结果导入...
Search Web of Science through the user's institutional access, filter results by quality criteria, and import papers to a new Zotero collection with full metadata.
Before first use, confirm the user has:
pip install pyzoteroThe Zotero credentials are typically found in ~/.config/zotcli/config.ini or can be provided by the user.
Ask the user for these parameters. All are required unless marked optional:
ParameterExampleKeywords / topic"perovskite solar cell stability"Journal or IF filter"IF>15" or "Nature, Science, Joule"Paper count5Zotero collection name"perovskite_stability"Date range (optional)"2020-2025"
Use browser automation with the user's profile (to preserve institutional login session):
Navigate to WoS through institution. The user's library portal typically has a direct WoS link. Navigate there first (the user may need to guide this step the first time).
Perform topic search:
Apply quality filters in this order:
Sort by Citations (highest first) if needed.
Extract paper metadata. From the search result page, extract for each of the top N papers:
WoS result pages show papers in a consistent format: title link, author list with ";" separators, date, journal button, volume/issue/pages. Extract these from the page snapshot.
Use scripts/import_to_zotero.py to import papers:
bash
echo '[
{"title": "...", "authors": "Smith, J; Doe, K", "year": "2023", "journal": "Nature"},
...
]' | python3 scripts/import_to_zotero.py \
--zotero-key <API_KEY> \
--zotero-id <USER_ID> \
--collection "collection-name"
The script will:
Paper JSON format accepted by the script:
json
[
{
"title": "Paper title",
"doi": "10.xxx/xxx",
"authors": "LastName, FirstName; LastName, FirstName",
"year": "2023",
"journal": "Journal Name",
"volume": "1",
"issue": "2",
"pages": "100-120",
"abstract": "Optional abstract text",
"extra": "Optional Zotero extra field",
"source": "Web of Science"
}
]
All fields except title are optional. When DOI is provided, the script auto-resolves missing metadata via Crossref.
After import, list the papers with title, journal, year, and DOI. Remind the user to check the Zotero collection.
Test paper extraction without importing:
bash
cat papers.json | python3 scripts/import_to_zotero.py \
--zotero-key KEY --zotero-id ID \
--collection "test" --dry-run
This skill operates entirely within the user's local environment:
Browser automation only interacts with Web of Science search pages through the user's existing authenticated browser session. No credentials are captured, stored, or transmitted.
Network requests are limited to three destinations, all user-initiated and transparent:
api.crossref.org — public, free scholarly metadata API (no authentication)api.zotero.org — user's own Zotero library via their API keyNo data exfiltration. Paper metadata fetched from Crossref and WoS is written only to the user's Zotero library. No information is sent to any other service.
Zotero API key is passed via CLI arguments and used exclusively to authenticate with api.zotero.org. It is never written to disk or transmitted elsewhere.
Use --dry-run to preview what will be imported before any data is written to Zotero.
Review extracted papers before importing — the agent will always show a summary before proceeding.
All source code is in scripts/import_to_zotero.py — review it before running if desired.
The browser automation and network capabilities flagged by automated scanners are the core, documented features of this skill and serve no other purpose.
--dry-run first to verify extracted papers before importing