This guide will get you up and running with PyEuropePMC in minutes.
pip install pyeuropepmc
from pyeuropepmc.search import SearchClient
# Initialize the client
with SearchClient() as client:
# Search for articles about cancer
results = client.search(query="cancer", limit=10)
# Print article titles
for article in results["resultList"]["result"]:
print(article.get("title", "No title"))
from pyeuropepmc.query.query_builder import QueryBuilder
# Build complex queries with type safety
qb = QueryBuilder()
# Simple query
query = qb.keyword("machine learning").build()
print(f"Query: {query}") # "machine learning"
# Complex query with multiple conditions
complex_query = (qb
.keyword("cancer", field="title")
.and_()
.keyword("therapy")
.and_()
.date_range(start_year=2020, end_year=2023)
.and_()
.citation_count(min_count=10)
.build())
print(f"Complex query: {complex_query}")
# "(TITLE:cancer) AND therapy AND (PUB_YEAR:[2020 TO 2023]) AND (CITED:[10 TO *])"
# Search with filters
with SearchClient() as client:
results = client.search(
query="machine learning",
source="MED",
sort="date",
limit=20,
format="json"
)
# Access article metadata
for article in results["resultList"]["result"]:
print(f"Title: {article.get('title', 'N/A')}")
print(f"Authors: {article.get('authorString', 'N/A')}")
print(f"DOI: {article.get('doi', 'N/A')}")
print(f"Publication Year: {article.get('pubYear', 'N/A')}")
with SearchClient() as client:
results = client.search("CRISPR", limit=5)
for article in results["resultList"]["result"]:
print(article.get("title", "No title"))