import yaml | |
from scholarly import scholarly | |
from scholarly import ProxyGenerator | |
import os | |
from factool.env_config import factool_env_config | |
# env | |
# scraper_api_key = factool_env_config.scraper_api_key | |
class google_scholar(): | |
def __init__(self): | |
pg = ProxyGenerator() | |
scraper_api_key = os.environ.get("SCRAPER_API_KEY", None) | |
assert scraper_api_key is not None, "Please set the SCRAPER_API_KEY environment variable." | |
success = pg.ScraperAPI(scraper_api_key) | |
scholarly.use_proxy(pg) | |
def run(self, query): | |
try: | |
results = scholarly.search_pubs(query) | |
paper_info = next(results) | |
paper_info_subset = {key: paper_info['bib'][key] for key in ['title', 'author', 'pub_year']} | |
return paper_info_subset | |
except StopIteration: | |
return {'title': "no match!", "author": "no match!", "pub_year": "no match!"} | |