Coder Social home page Coder Social logo

dimitryzub / scrape-google-scholar-py Goto Github PK

View Code? Open in Web Editor NEW
75.0 2.0 15.0 13.14 MB

Extract data from all Google Scholar pages from a single Python module. NOTE: I'm no longer maintaining this repo. Chrome driver/selectors might need and update.

License: MIT License

Python 100.00%
python-3 webscraping googlescholar serpapi beautifulsoup4 requests selectolax lexbor serp serp-api

scrape-google-scholar-py's Introduction


Scrape data from all Google Scholar pages from a single Python module.

scrape-google-scholar-py-logo

Downloads licence codecov

🧐 Why two backends?
  1. If you don't want to pay for API. However, I'm not 100% sure if selenium-stealth could handle all CAPTCHAs (although it handles CAPTCHA by Cloudflare) and similar blocks.
  2. If you know about SerpApi but don't want to figure out pagination.

SerpApi backend is more reliable because of:

  • dedicated team of maintainers
  • pool of proxies
  • CAPTCHA solvers
  • legal part of scraping and more.
🧩 Custom backend supports
  1. Organic results (with pagination).
  2. Profile results (with pagination).
  3. Author + author articles (with pagination), everything except "cited by" graph.
  4. Public access mandates metrics. Yes, you can download CSV with one click, however, it doesn't contain a funder link. Script here has it and saves to CSV/JSON.
  5. Top publications metrics. Categories is also supported (as function argument). Saves to CSV/JSON. Sub-categories are not yet supported.
  6. Journal articles (with pagination).

You can use scholary to parse the data instead. However, it only extracts first 3 points above (organic, profile, author results).

Things custom backend doesn't support yet
  1. Organic results filters (case law, sorting, period ranges). You can add those URL parameters yourself (if installing from source) easily to the google_scholar_py/custom_backend/organic_search.py file (line 147 or 136), where driver.get() is being called.
  2. Author page -> cited by graph.
  3. Extracting journal articles page. The issue to add this page is open.
  4. Top publications metrics page. Subcategories are not yet supported, it's in a TODO list.
  5. Update cite results page extraction.
🔮 SerpApi backend supports
🏗 Custom backend depends on
  • selenium-stealth - to bypass CAPTCHAs and render some HTML (like cite results from organic result).
  • selectolax - to parse HTML fast. Its the fastest Python parser wrapped around lexbor (parser in pure C).
  • pandas - to save extracted data to CSV or JSON, or if you want to analyze the data right away. Save options is used in organic results and top publications, public access mandates pages for now.

All scripts are using headless selenium-stealth to bypass CAPTCHA that appears on Google Scholar, so you need to have a chromedriver. If you're on Linux you may need to do additional troubleshooting if chromedriver won't run properly.

📥Installing

Install via pip:

$ pip install scrape-google-scholar-py

Install from source (single piped command):

git clone https://github.com/dimitryzub/scrape-google-scholar-py.git \
&& cd scrape-google-scholar-py \
&& python -m venv env && source env/Scripts/activate \
&& pip install -r requirements.txt

Possible errors that you might encounter

LINUX USERS: If it throws "Web-driver exits unexpectedly" error

Try installing extra dependencies to run chromedriver:

$ apt-get install -y libglib2.0-0 libnss3 libgconf-2-4 libfontconfig1

See resolved issue: [Linux] Web-driver exits unexpectedly using CustomGoogleScholarOrganic() #7

For MAC users, possible issues and fixes
If it throws an error with `selenium-stealth`
error: The 'selenium' distribution was not found and is required by selenium-stealth

Use:

$ pip install selenium-stealth

📝Example usage custom backend

from google_scholar_py import CustomGoogleScholarProfiles
import json

parser = CustomGoogleScholarProfiles()
data = parser.scrape_google_scholar_profiles(
    query='blizzard',
    pagination=False,
    save_to_csv=False,
    save_to_json=False
)
print(json.dumps(data, indent=2))
Google Scholar search operators could also be used
label:computer_vision "Michigan State University"|"U.Michigan"

This query will search all profiles from 2 universities based on "computer vision" query.

JSON output
[
  {
    "name": "Adam Lobel",
    "link": "https://scholar.google.com/citations?hl=en&user=_xwYD2sAAAAJ",
    "affiliations": "Blizzard Entertainment",
    "interests": [
      "Gaming",
      "Emotion regulation"
    ],
    "email": "Verified email at AdamLobel.com",
    "cited_by_count": 3593
  },
  {
    "name": "Daniel Blizzard",
    "link": "https://scholar.google.com/citations?hl=en&user=dk4LWEgAAAAJ",
    "affiliations": "",
    "interests": null,
    "email": null,
    "cited_by_count": 1041
  },
  {
    "name": "Shuo Chen",
    "link": "https://scholar.google.com/citations?hl=en&user=OBf4YnkAAAAJ",
    "affiliations": "Senior Data Scientist, Blizzard Entertainment",
    "interests": [
      "Machine Learning",
      "Data Mining",
      "Artificial Intelligence"
    ],
    "email": "Verified email at cs.cornell.edu",
    "cited_by_count": 725
  },
  {
    "name": "Ian Livingston",
    "link": "https://scholar.google.com/citations?hl=en&user=xBHVqNIAAAAJ",
    "affiliations": "Blizzard Entertainment",
    "interests": [
      "Human-computer interaction",
      "User Experience",
      "Player Experience",
      "User Research",
      "Games"
    ],
    "email": "Verified email at usask.ca",
    "cited_by_count": 652
  },
  {
    "name": "Minli Xu",
    "link": "https://scholar.google.com/citations?hl=en&user=QST5iogAAAAJ",
    "affiliations": "Blizzard Entertainment",
    "interests": [
      "Game",
      "Machine Learning",
      "Data Science",
      "Bioinformatics"
    ],
    "email": "Verified email at blizzard.com",
    "cited_by_count": 541
  },
  {
    "name": "Je Seok Lee",
    "link": "https://scholar.google.com/citations?hl=en&user=vuvtlzQAAAAJ",
    "affiliations": "Blizzard Entertainment",
    "interests": [
      "HCI",
      "Player Experience",
      "Games",
      "Esports"
    ],
    "email": "Verified email at uci.edu",
    "cited_by_count": 386
  },
  {
    "name": "Alisha Ness",
    "link": "https://scholar.google.com/citations?hl=en&user=xQuwVfkAAAAJ",
    "affiliations": "Activision Blizzard",
    "interests": null,
    "email": null,
    "cited_by_count": 324
  },
  {
    "name": "Xingyu (Alfred) Liu",
    "link": "https://scholar.google.com/citations?hl=en&user=VW9ukOwAAAAJ",
    "affiliations": "Blizzard Entertainment",
    "interests": [
      "Machine Learning in Game Development"
    ],
    "email": null,
    "cited_by_count": 256
  },
  {
    "name": "Amanda LL Cullen",
    "link": "https://scholar.google.com/citations?hl=en&user=oqna6OgAAAAJ",
    "affiliations": "Blizzard Entertainment",
    "interests": [
      "Games Studies",
      "Fan Studies",
      "Live Streaming"
    ],
    "email": null,
    "cited_by_count": 247
  },
  {
    "name": "Nicole \"Nikki\" Crenshaw",
    "link": "https://scholar.google.com/citations?hl=en&user=zmRH6E0AAAAJ",
    "affiliations": "Blizzard Entertainment",
    "interests": [
      "MMOs",
      "Neoliberalism",
      "Social Affordances",
      "Identity",
      "Accessibility"
    ],
    "email": "Verified email at uci.edu",
    "cited_by_count": 202
  }
]

📝Example usage SerpApi backend

from google_scholar_py import SerpApiGoogleScholarOrganic
import json

profile_parser = SerpApiGoogleScholarProfiles()
data = profile_parser.scrape_google_scholar_profile_results(
    query='blizzard',
    api_key='your-serpapi-api-key', # https://serpapi.com/manage-api-key
    pagination=False,
    # other params
)
print(json.dumps(data, indent=2))
JSON output
[
  {
    "position": 0,
    "title": "Mining learning and crafting scientific experiments: a literature review on the use of minecraft in education and research",
    "result_id": "61OUs-3P374J",
    "link": "https://www.jstor.org/stable/pdf/jeductechsoci.19.2.355.pdf?&seq=1",
    "snippet": "\u2026 Minecraft have aroused the attention of teachers and researchers alike. To gain insights into the applicability of Minecraft, \u2026 our own considerable experience with Minecraft in courses on \u2026",
    "publication_info": {
      "summary": "S Nebel, S Schneider, GD Rey - Journal of Educational Technology & \u2026, 2016 - JSTOR",
      "authors": [
        {
          "name": "S Nebel",
          "link": "https://scholar.google.com/citations?user=_WTrwUwAAAAJ&hl=en&oi=sra",
          "serpapi_scholar_link": "https://serpapi.com/search.json?author_id=_WTrwUwAAAAJ&engine=google_scholar_author&hl=en", 
          "author_id": "_WTrwUwAAAAJ"
        },
        {
          "name": "S Schneider",
          "link": "https://scholar.google.com/citations?user=6Lh4FBMAAAAJ&hl=en&oi=sra",
          "serpapi_scholar_link": "https://serpapi.com/search.json?author_id=6Lh4FBMAAAAJ&engine=google_scholar_author&hl=en", 
          "author_id": "6Lh4FBMAAAAJ"
        },
        {
          "name": "GD Rey",
          "link": "https://scholar.google.com/citations?user=jCilMQoAAAAJ&hl=en&oi=sra",
          "serpapi_scholar_link": "https://serpapi.com/search.json?author_id=jCilMQoAAAAJ&engine=google_scholar_author&hl=en", 
          "author_id": "jCilMQoAAAAJ"
        }
      ]
    },
    "resources": [
      {
        "title": "researchgate.net",
        "file_format": "PDF",
        "link": "https://www.researchgate.net/profile/Steve-Nebel/publication/301232882_Mining_Learning_and_Crafting_Scientific_Experiments_A_Literature_Review_on_the_Use_of_Minecraft_in_Education_and_Research/links/570e709008aed4bec6fddad4/Mining-Learning-and-Crafting-Scientific-Experiments-A-Literature-Review-on-the-Use-of-Minecraft-in-Education-and-Research.pdf"
      }
    ],
    "inline_links": {
      "serpapi_cite_link": "https://serpapi.com/search.json?engine=google_scholar_cite&q=61OUs-3P374J",
      "cited_by": {
        "total": 358,
        "link": "https://scholar.google.com/scholar?cites=13753940406839825387&as_sdt=2005&sciodt=0,5&hl=en",
        "cites_id": "13753940406839825387",
        "serpapi_scholar_link": "https://serpapi.com/search.json?as_sdt=2005&cites=13753940406839825387&engine=google_scholar&hl=en"
      },
      "related_pages_link": "https://scholar.google.com/scholar?q=related:61OUs-3P374J:scholar.google.com/&scioq=minecraft&hl=en&as_sdt=0,5",
      "serpapi_related_pages_link": "https://serpapi.com/search.json?as_sdt=0%2C5&engine=google_scholar&hl=en&q=related%3A61OUs-3P374J%3Ascholar.google.com%2F",
      "versions": {
        "total": 10,
        "link": "https://scholar.google.com/scholar?cluster=13753940406839825387&hl=en&as_sdt=0,5",
        "cluster_id": "13753940406839825387",
        "serpapi_scholar_link": "https://serpapi.com/search.json?as_sdt=0%2C5&cluster=13753940406839825387&engine=google_scholar&hl=en"
      }
    }
  },
  {
    "position": 1,
    "title": "Minecraft, beyond construction and survival",
    "result_id": "_Lo9erywZPUJ",
    "type": "Pdf",
    "link": "https://stacks.stanford.edu/file/druid:qq694ht6771/WellPlayed-v1n1-11.pdf#page=9",
    "snippet": "\" We\u2019ll keep releasing expansions and keep the game alive, but there needs to be some kind of final version that you can point at and say,\u2018I did this!\u2019... I\u2019m not sure why I feel a need to \u2026",
    "publication_info": {
      "summary": "SC Duncan - 2011 - stacks.stanford.edu",
      "authors": [
        {
          "name": "SC Duncan",
          "link": "https://scholar.google.com/citations?user=Ypqv_IEAAAAJ&hl=en&oi=sra",
          "serpapi_scholar_link": "https://serpapi.com/search.json?author_id=Ypqv_IEAAAAJ&engine=google_scholar_author&hl=en", 
          "author_id": "Ypqv_IEAAAAJ"
        }
      ]
    },
    "resources": [
      {
        "title": "stanford.edu",
        "file_format": "PDF",
        "link": "https://stacks.stanford.edu/file/druid:qq694ht6771/WellPlayed-v1n1-11.pdf#page=9"
      }
    ],
    "inline_links": {
      "serpapi_cite_link": "https://serpapi.com/search.json?engine=google_scholar_cite&q=_Lo9erywZPUJ",
      "cited_by": {
        "total": 288,
        "link": "https://scholar.google.com/scholar?cites=17682452360514616060&as_sdt=2005&sciodt=0,5&hl=en",
        "cites_id": "17682452360514616060",
        "serpapi_scholar_link": "https://serpapi.com/search.json?as_sdt=2005&cites=17682452360514616060&engine=google_scholar&hl=en"
      },
      "related_pages_link": "https://scholar.google.com/scholar?q=related:_Lo9erywZPUJ:scholar.google.com/&scioq=minecraft&hl=en&as_sdt=0,5",
      "serpapi_related_pages_link": "https://serpapi.com/search.json?as_sdt=0%2C5&engine=google_scholar&hl=en&q=related%3A_Lo9erywZPUJ%3Ascholar.google.com%2F",
      "versions": {
        "total": 6,
        "link": "https://scholar.google.com/scholar?cluster=17682452360514616060&hl=en&as_sdt=0,5",
        "cluster_id": "17682452360514616060",
        "serpapi_scholar_link": "https://serpapi.com/search.json?as_sdt=0%2C5&cluster=17682452360514616060&engine=google_scholar&hl=en"
      },
      "cached_page_link": "https://scholar.googleusercontent.com/scholar?q=cache:_Lo9erywZPUJ:scholar.google.com/+minecraft&hl=en&as_sdt=0,5"
    }
  },
  {
    "position": 2,
    "title": "Minecraft as a creative tool: A case study",
    "result_id": "wOTRJ8q0KIsJ",
    "link": "https://www.igi-global.com/article/minecraft-as-a-creative-tool/116516",
    "snippet": "\u2026 environment, Minecraft. In the following case study, the authors explored the use of Minecraft in \u2026 The authors demonstrate that Minecraft offers a unique opportunity for students to display \u2026",
    "publication_info": {
      "summary": "M Cipollone, CC Schifter, RA Moffat - International Journal of Game \u2026, 2014 - igi-global.com"
    },
    "resources": [
      {
        "title": "minecraft.school.nz",
        "file_format": "PDF",
        "link": "https://www.minecraft.school.nz/uploads/2/9/6/3/2963069/minecraft-as-a-creative-tool_-a-case-study_cipollone2014.pdf"
      }
    ],
    "inline_links": {
      "serpapi_cite_link": "https://serpapi.com/search.json?engine=google_scholar_cite&q=wOTRJ8q0KIsJ",
      "cited_by": {
        "total": 102,
        "link": "https://scholar.google.com/scholar?cites=10027463350684869824&as_sdt=2005&sciodt=0,5&hl=en",
        "cites_id": "10027463350684869824",
        "serpapi_scholar_link": "https://serpapi.com/search.json?as_sdt=2005&cites=10027463350684869824&engine=google_scholar&hl=en"
      },
      "related_pages_link": "https://scholar.google.com/scholar?q=related:wOTRJ8q0KIsJ:scholar.google.com/&scioq=minecraft&hl=en&as_sdt=0,5",
      "serpapi_related_pages_link": "https://serpapi.com/search.json?as_sdt=0%2C5&engine=google_scholar&hl=en&q=related%3AwOTRJ8q0KIsJ%3Ascholar.google.com%2F",
      "versions": {
        "total": 9,
        "link": "https://scholar.google.com/scholar?cluster=10027463350684869824&hl=en&as_sdt=0,5",
        "cluster_id": "10027463350684869824",
        "serpapi_scholar_link": "https://serpapi.com/search.json?as_sdt=0%2C5&cluster=10027463350684869824&engine=google_scholar&hl=en"
      }
    }
  },
  {
    "position": 3,
    "title": "Learning mathematics through Minecraft",
    "result_id": "Hh4p5NaYNu0J",
    "link": "https://pubs.nctm.org/abstract/journals/tcm/21/1/article-p56.xml",
    "snippet": "\u2026 Minecraft to explore area and perimeter. First, the teacher reviewed the definition of perimeter and area. Using a class set of iPods with Minecraft \u2026 Minecraft forms a medium to explore \u2026",
    "publication_info": {
      "summary": "B Bos, L Wilder, M Cook, R O'Donnell - Teaching Children \u2026, 2014 - pubs.nctm.org",
      "authors": [
        {
          "name": "B Bos",
          "link": "https://scholar.google.com/citations?user=DfdRg-8AAAAJ&hl=en&oi=sra",
          "serpapi_scholar_link": "https://serpapi.com/search.json?author_id=DfdRg-8AAAAJ&engine=google_scholar_author&hl=en", 
          "author_id": "DfdRg-8AAAAJ"
        }
      ]
    },
    "resources": [
      {
        "title": "researchgate.net",
        "file_format": "PDF",
        "link": "https://www.researchgate.net/profile/Beth-Bos/publication/267507986_Learning_mathematics_through_Minecraft_Authors/links/545103b80cf249aa53dc8eb2/Learning-mathematics-through-Minecraft-Authors.pdf"
      }
    ],
    "inline_links": {
      "serpapi_cite_link": "https://serpapi.com/search.json?engine=google_scholar_cite&q=Hh4p5NaYNu0J",
      "cited_by": {
        "total": 120,
        "link": "https://scholar.google.com/scholar?cites=17093017484449619486&as_sdt=2005&sciodt=0,5&hl=en",
        "cites_id": "17093017484449619486",
        "serpapi_scholar_link": "https://serpapi.com/search.json?as_sdt=2005&cites=17093017484449619486&engine=google_scholar&hl=en"
      },
      "related_pages_link": "https://scholar.google.com/scholar?q=related:Hh4p5NaYNu0J:scholar.google.com/&scioq=minecraft&hl=en&as_sdt=0,5",
      "serpapi_related_pages_link": "https://serpapi.com/search.json?as_sdt=0%2C5&engine=google_scholar&hl=en&q=related%3AHh4p5NaYNu0J%3Ascholar.google.com%2F",
      "versions": {
        "total": 8,
        "link": "https://scholar.google.com/scholar?cluster=17093017484449619486&hl=en&as_sdt=0,5",
        "cluster_id": "17093017484449619486",
        "serpapi_scholar_link": "https://serpapi.com/search.json?as_sdt=0%2C5&cluster=17093017484449619486&engine=google_scholar&hl=en"
      }
    }
  },
  {
    "position": 4,
    "title": "A deep hierarchical approach to lifelong learning in minecraft",
    "result_id": "a_Er9i3hDtUJ",
    "link": "https://ojs.aaai.org/index.php/AAAI/article/view/10744",
    "snippet": "We propose a lifelong learning system that has the ability to reuse and transfer knowledge from one task to another while efficiently retaining the previously learned knowledge-base. \u2026",
    "publication_info": {
      "summary": "C Tessler, S Givony, T Zahavy, D Mankowitz\u2026 - Proceedings of the \u2026, 2017 - ojs.aaai.org",
      "authors": [
        {
          "name": "C Tessler",
          "link": "https://scholar.google.com/citations?user=7eLKa3IAAAAJ&hl=en&oi=sra",
          "serpapi_scholar_link": "https://serpapi.com/search.json?author_id=7eLKa3IAAAAJ&engine=google_scholar_author&hl=en", 
          "author_id": "7eLKa3IAAAAJ"
        },
        {
          "name": "S Givony",
          "link": "https://scholar.google.com/citations?user=nlVsO4YAAAAJ&hl=en&oi=sra",
          "serpapi_scholar_link": "https://serpapi.com/search.json?author_id=nlVsO4YAAAAJ&engine=google_scholar_author&hl=en", 
          "author_id": "nlVsO4YAAAAJ"
        },
        {
          "name": "T Zahavy",
          "link": "https://scholar.google.com/citations?user=9dXN6cMAAAAJ&hl=en&oi=sra",
          "serpapi_scholar_link": "https://serpapi.com/search.json?author_id=9dXN6cMAAAAJ&engine=google_scholar_author&hl=en", 
          "author_id": "9dXN6cMAAAAJ"
        },
        {
          "name": "D Mankowitz",
          "link": "https://scholar.google.com/citations?user=v84tWxsAAAAJ&hl=en&oi=sra",
          "serpapi_scholar_link": "https://serpapi.com/search.json?author_id=v84tWxsAAAAJ&engine=google_scholar_author&hl=en", 
          "author_id": "v84tWxsAAAAJ"
        }
      ]
    },
    "resources": [
      {
        "title": "aaai.org",
        "file_format": "PDF",
        "link": "https://ojs.aaai.org/index.php/AAAI/article/view/10744/10603"
      }
    ],
    "inline_links": {
      "serpapi_cite_link": "https://serpapi.com/search.json?engine=google_scholar_cite&q=a_Er9i3hDtUJ",
      "cited_by": {
        "total": 364,
        "link": "https://scholar.google.com/scholar?cites=15352455767272452459&as_sdt=2005&sciodt=0,5&hl=en",
        "cites_id": "15352455767272452459",
        "serpapi_scholar_link": "https://serpapi.com/search.json?as_sdt=2005&cites=15352455767272452459&engine=google_scholar&hl=en"
      },
      "related_pages_link": "https://scholar.google.com/scholar?q=related:a_Er9i3hDtUJ:scholar.google.com/&scioq=minecraft&hl=en&as_sdt=0,5",
      "serpapi_related_pages_link": "https://serpapi.com/search.json?as_sdt=0%2C5&engine=google_scholar&hl=en&q=related%3Aa_Er9i3hDtUJ%3Ascholar.google.com%2F",
      "versions": {
        "total": 13,
        "link": "https://scholar.google.com/scholar?cluster=15352455767272452459&hl=en&as_sdt=0,5",
        "cluster_id": "15352455767272452459",
        "serpapi_scholar_link": "https://serpapi.com/search.json?as_sdt=0%2C5&cluster=15352455767272452459&engine=google_scholar&hl=en"
      },
      "cached_page_link": "https://scholar.googleusercontent.com/scholar?q=cache:a_Er9i3hDtUJ:scholar.google.com/+minecraft&hl=en&as_sdt=0,5"
    }
  },
  {
    "position": 5,
    "title": "Teaching scientific concepts using a virtual world: Minecraft.",
    "result_id": "Oh88DuoTaLYJ",
    "link": "https://search.informit.org/doi/abs/10.3316/aeipt.195598",
    "snippet": "Minecraft is a multiplayer sandbox video game based in a virtual world modelled on the real \u2026 of Minecraft lends itself to the teaching of various academic subjects. Minecraft also has a \u2026",
    "publication_info": {
      "summary": "D Short - Teaching science, 2012 - search.informit.org",
      "authors": [
        {
          "name": "D Short",
          "link": "https://scholar.google.com/citations?user=ec_1ZmMAAAAJ&hl=en&oi=sra",
          "serpapi_scholar_link": "https://serpapi.com/search.json?author_id=ec_1ZmMAAAAJ&engine=google_scholar_author&hl=en", 
          "author_id": "ec_1ZmMAAAAJ"
        }
      ]
    },
    "resources": [
      {
        "title": "academia.edu",
        "file_format": "PDF",
        "link": "https://www.academia.edu/download/31153502/Short-2012-MC-Color-Version.pdf"
      }
    ],
    "inline_links": {
      "serpapi_cite_link": "https://serpapi.com/search.json?engine=google_scholar_cite&q=Oh88DuoTaLYJ",
      "cited_by": {
        "total": 274,
        "link": "https://scholar.google.com/scholar?cites=13143777408462888762&as_sdt=2005&sciodt=0,5&hl=en",
        "cites_id": "13143777408462888762",
        "serpapi_scholar_link": "https://serpapi.com/search.json?as_sdt=2005&cites=13143777408462888762&engine=google_scholar&hl=en"
      },
      "related_pages_link": "https://scholar.google.com/scholar?q=related:Oh88DuoTaLYJ:scholar.google.com/&scioq=minecraft&hl=en&as_sdt=0,5",
      "serpapi_related_pages_link": "https://serpapi.com/search.json?as_sdt=0%2C5&engine=google_scholar&hl=en&q=related%3AOh88DuoTaLYJ%3Ascholar.google.com%2F",
      "versions": {
        "total": 8,
        "link": "https://scholar.google.com/scholar?cluster=13143777408462888762&hl=en&as_sdt=0,5",
        "cluster_id": "13143777408462888762",
        "serpapi_scholar_link": "https://serpapi.com/search.json?as_sdt=0%2C5&cluster=13143777408462888762&engine=google_scholar&hl=en"
      }
    }
  },
  {
    "position": 6,
    "title": "Investigating the role of Minecraft in educational learning environments",
    "result_id": "6RcOZdlG3CcJ",
    "link": "https://www.tandfonline.com/doi/abs/10.1080/09523987.2016.1254877",
    "snippet": "\u2026 This research paper identifies the way in which Minecraft Edu can be used to contribute to the teaching 
and learning of secondary students via a multiple case research study. Minecraft \u2026",
    "publication_info": {
      "summary": "N Callaghan - Educational Media International, 2016 - Taylor & Francis"
    },
    "inline_links": {
      "serpapi_cite_link": "https://serpapi.com/search.json?engine=google_scholar_cite&q=6RcOZdlG3CcJ",
      "cited_by": {
        "total": 95,
        "link": "https://scholar.google.com/scholar?cites=2872248561872803817&as_sdt=2005&sciodt=0,5&hl=en",
        "cites_id": "2872248561872803817",
        "serpapi_scholar_link": "https://serpapi.com/search.json?as_sdt=2005&cites=2872248561872803817&engine=google_scholar&hl=en"
      },
      "related_pages_link": "https://scholar.google.com/scholar?q=related:6RcOZdlG3CcJ:scholar.google.com/&scioq=minecraft&hl=en&as_sdt=0,5",
      "serpapi_related_pages_link": "https://serpapi.com/search.json?as_sdt=0%2C5&engine=google_scholar&hl=en&q=related%3A6RcOZdlG3CcJ%3Ascholar.google.com%2F",
      "versions": {
        "total": 3,
        "link": "https://scholar.google.com/scholar?cluster=2872248561872803817&hl=en&as_sdt=0,5",
        "cluster_id": "2872248561872803817",
        "serpapi_scholar_link": "https://serpapi.com/search.json?as_sdt=0%2C5&cluster=2872248561872803817&engine=google_scholar&hl=en"
      }
    }
  },
  {
    "position": 7,
    "title": "Maker culture and Minecraft: implications for the future of learning",
    "result_id": "h27IfZ5va2YJ",
    "link": "https://www.tandfonline.com/doi/abs/10.1080/09523987.2015.1075103",
    "snippet": "\u2026 be best to subscribe to for gathering information on Minecraft maker culture. From there, we \u2026 the 
Minecraft videos that we are studying \u201ccreators\u201d due to the culture of the Minecraft video \u2026",
    "publication_info": {
      "summary": "DJ Niemeyer, HR Gerber - Educational Media International, 2015 - Taylor & Francis",
      "authors": [
        {
          "name": "DJ Niemeyer",
          "link": "https://scholar.google.com/citations?user=iEZOnzQAAAAJ&hl=en&oi=sra",
          "serpapi_scholar_link": "https://serpapi.com/search.json?author_id=iEZOnzQAAAAJ&engine=google_scholar_author&hl=en", 
          "author_id": "iEZOnzQAAAAJ"
        },
        {
          "name": "HR Gerber",
          "link": "https://scholar.google.com/citations?user=DwyCTMUAAAAJ&hl=en&oi=sra",
          "serpapi_scholar_link": "https://serpapi.com/search.json?author_id=DwyCTMUAAAAJ&engine=google_scholar_author&hl=en", 
          "author_id": "DwyCTMUAAAAJ"
        }
      ]
    },
    "resources": [
      {
        "title": "publicservicesalliance.org",
        "file_format": "PDF",
        "link": "http://publicservicesalliance.org/wp-content/uploads/2016/06/Maker_culture_and_Minecraft_implications.pdf"    
      }
    ],
    "inline_links": {
      "serpapi_cite_link": "https://serpapi.com/search.json?engine=google_scholar_cite&q=h27IfZ5va2YJ",
      "cited_by": {
        "total": 114,
        "link": "https://scholar.google.com/scholar?cites=7380115140882493063&as_sdt=2005&sciodt=0,5&hl=en",
        "cites_id": "7380115140882493063",
        "serpapi_scholar_link": "https://serpapi.com/search.json?as_sdt=2005&cites=7380115140882493063&engine=google_scholar&hl=en"
      },
      "related_pages_link": "https://scholar.google.com/scholar?q=related:h27IfZ5va2YJ:scholar.google.com/&scioq=minecraft&hl=en&as_sdt=0,5",
      "serpapi_related_pages_link": "https://serpapi.com/search.json?as_sdt=0%2C5&engine=google_scholar&hl=en&q=related%3Ah27IfZ5va2YJ%3Ascholar.google.com%2F",
      "versions": {
        "total": 8,
        "link": "https://scholar.google.com/scholar?cluster=7380115140882493063&hl=en&as_sdt=0,5",
        "cluster_id": "7380115140882493063",
        "serpapi_scholar_link": "https://serpapi.com/search.json?as_sdt=0%2C5&cluster=7380115140882493063&engine=google_scholar&hl=en"
      }
    }
  },
  {
    "position": 8,
    "title": "Control of memory, active perception, and action in minecraft",
    "result_id": "-5uM8qRUviwJ",
    "link": "http://proceedings.mlr.press/v48/oh16.html",
    "snippet": "In this paper, we introduce a new set of reinforcement learning (RL) tasks in Minecraft (a flexible 3D world). 
We then use these tasks to systematically compare and contrast existing \u2026",
    "publication_info": {
      "summary": "J Oh, V Chockalingam, H Lee - \u2026 conference on machine \u2026, 2016 - proceedings.mlr.press",
      "authors": [
        {
          "name": "J Oh",
          "link": "https://scholar.google.com/citations?user=LNUeOu4AAAAJ&hl=en&oi=sra",
          "serpapi_scholar_link": "https://serpapi.com/search.json?author_id=LNUeOu4AAAAJ&engine=google_scholar_author&hl=en", 
          "author_id": "LNUeOu4AAAAJ"
        },
        {
          "name": "V Chockalingam",
          "link": "https://scholar.google.com/citations?user=CM2UkioAAAAJ&hl=en&oi=sra",
          "serpapi_scholar_link": "https://serpapi.com/search.json?author_id=CM2UkioAAAAJ&engine=google_scholar_author&hl=en", 
          "author_id": "CM2UkioAAAAJ"
        },
        {
          "name": "H Lee",
          "link": "https://scholar.google.com/citations?user=fmSHtE8AAAAJ&hl=en&oi=sra",
          "serpapi_scholar_link": "https://serpapi.com/search.json?author_id=fmSHtE8AAAAJ&engine=google_scholar_author&hl=en", 
          "author_id": "fmSHtE8AAAAJ"
        }
      ]
    },
    "resources": [
      {
        "title": "mlr.press",
        "file_format": "PDF",
        "link": "http://proceedings.mlr.press/v48/oh16.pdf"
      }
    ],
    "inline_links": {
      "serpapi_cite_link": "https://serpapi.com/search.json?engine=google_scholar_cite&q=-5uM8qRUviwJ",
      "cited_by": {
        "total": 317,
        "link": "https://scholar.google.com/scholar?cites=3224107450664524795&as_sdt=2005&sciodt=0,5&hl=en",
        "cites_id": "3224107450664524795",
        "serpapi_scholar_link": "https://serpapi.com/search.json?as_sdt=2005&cites=3224107450664524795&engine=google_scholar&hl=en"
      },
      "related_pages_link": "https://scholar.google.com/scholar?q=related:-5uM8qRUviwJ:scholar.google.com/&scioq=minecraft&hl=en&as_sdt=0,5",
      "serpapi_related_pages_link": "https://serpapi.com/search.json?as_sdt=0%2C5&engine=google_scholar&hl=en&q=related%3A-5uM8qRUviwJ%3Ascholar.google.com%2F",
      "versions": {
        "total": 7,
        "link": "https://scholar.google.com/scholar?cluster=3224107450664524795&hl=en&as_sdt=0,5",
        "cluster_id": "3224107450664524795",
        "serpapi_scholar_link": "https://serpapi.com/search.json?as_sdt=0%2C5&cluster=3224107450664524795&engine=google_scholar&hl=en"
      },
      "cached_page_link": "http://scholar.googleusercontent.com/scholar?q=cache:-5uM8qRUviwJ:scholar.google.com/+minecraft&hl=en&as_sdt=0,5"
    }
  },
  {
    "position": 9,
    "title": "Minecraft as a teaching tool: One case study",
    "result_id": "yItxbN8DVXYJ",
    "link": "https://www.learntechlib.org/p/48540/",
    "snippet": "We know games help students gain skills and insights in many ways, and that games are engaging. With new online MMOPRPG games, like Minecraft, what we do not know is what \u2026",
    "publication_info": {
      "summary": "C Schifter, M Cipollone - Society for Information Technology & \u2026, 2013 - learntechlib.org"
    },
    "inline_links": {
      "serpapi_cite_link": "https://serpapi.com/search.json?engine=google_scholar_cite&q=yItxbN8DVXYJ",
      "cited_by": {
        "total": 55,
        "link": "https://scholar.google.com/scholar?cites=8526725727627873224&as_sdt=2005&sciodt=0,5&hl=en",
        "cites_id": "8526725727627873224",
        "serpapi_scholar_link": "https://serpapi.com/search.json?as_sdt=2005&cites=8526725727627873224&engine=google_scholar&hl=en"
      },
      "related_pages_link": "https://scholar.google.com/scholar?q=related:yItxbN8DVXYJ:scholar.google.com/&scioq=minecraft&hl=en&as_sdt=0,5",
      "serpapi_related_pages_link": "https://serpapi.com/search.json?as_sdt=0%2C5&engine=google_scholar&hl=en&q=related%3AyItxbN8DVXYJ%3Ascholar.google.com%2F",
      "versions": {
        "total": 2,
        "link": "https://scholar.google.com/scholar?cluster=8526725727627873224&hl=en&as_sdt=0,5",
        "cluster_id": "8526725727627873224",
        "serpapi_scholar_link": "https://serpapi.com/search.json?as_sdt=0%2C5&cluster=8526725727627873224&engine=google_scholar&hl=en"
      }
    }
  }
]

✍Contributing

Feel free to open an issue:

  • what bug you found.
  • something isn't working.
  • what feature to add.
  • anything else related to Google Scholar.

If you find comfortable to open a PR, feel free to do so. Guidelines are simple: conventional commits + code as simple as possible without unnecessary complexity.

There's exists a .gitpod.yaml config if you're using Gitpod.

📜Licence

scrape-google-scholar repository is licensed under MIT license.

scrape-google-scholar-py's People

Contributors

dimitryzub avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

scrape-google-scholar-py's Issues

Cannot import `CustomGoogleScholarTopPublicationCitations`

I'm currently using a macOS Big Sur, python 3.11.1. While I can import CustomGoogleScholarOrganic without issues, I am unable to import CustomGoogleScholarTopPublicationCitations, with the relevant error message included below.

>>> from google_scholar_py import CustomGoogleScholarTopPublicationCitations
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: cannot import name 'CustomGoogleScholarTopPublicationCitations' from 'google_scholar_py' (/Users/rohanjha/.pyenv/versions/3.11.1/lib/python3.11/site-packages/google_scholar_py/__init__.py)
>>> from google_scholar_py import CustomGoogleScholarOrganic
>>> 

Any help on this would be greatly appreciated! Additionally, example_usage.py says that documentation exists for each of these functions. Could you please point me to the documentation if possible? I'm interested in scraping the citation counts for various papers, and would love to read up on the best way I can do so. Thanks for your support!

filter the authors based on their reaserch interests

Hi
could you please let me know whether it is possible to filter out the google scholar accounts based on their research interest and extract them accordingly? also I need to have the institute or university name which the email has been verified with. for example for this profile: https://scholar.google.com/citations?hl=en&user=N2QLafQAAAAJ

the research interests are:
Bioinformatics, Systems, Biology Immunology

and the profile email address is associated to:
Technical University of Denmark

[Docs] Add info, usage examples, installation

This information is needed due to additional features added, such as switching from bs4 , parsel to selectolax (faster) and selenium-stealth (bypass captcha).

  1. How to clone repo, and install necessary things.
  2. How to execute files, and change them.

cannot import

I am using Windows 10, Python 3.9:

First I installed like this:

c:\python39\scripts\pip install scrape-google-scholar-py

Apparently it installed with no problems.
Then I tried to import:

c:\>c:\python39\python
Python 3.9.9 (tags/v3.9.9:ccb0e6a, Nov 15 2021, 18:08:50) [MSC v.1929 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from google_scholar_py import CustomGoogleScholarProfiles
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: cannot import name 'CustomGoogleScholarProfiles' from 'google_scholar_py' (c:\python39\lib\site-packages\google_scholar_py\__init__.py)
>>> from google_scholar_py import SerpApiGoogleScholarOrganic
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: cannot import name 'SerpApiGoogleScholarOrganic' from 'google_scholar_py' (c:\python39\lib\site-packages\google_scholar_py\__init__.py)
>>>

Same error trying either CustomGoogleScholarProfiles or SerpApiGoogleScholarOrganic

no results returned

Hi
Thank you for providing this package! I ran the following script but got nothing returned. Any idea what caused it?

image

[Linux] Web-driver exits unexpectedly using CustomGoogleScholarOrganic()

Traceback (most recent call last):
File "/mnt/c/Users/enarevbd/Documents/scraping_files/scrape-google-scholar-py/first_query.py", line 9, in
custom_parser_get_organic_results = CustomGoogleScholarOrganic().scrape_google_scholar_organic_results(
File "/mnt/c/Users/enarevbd/Documents/scraping_files/scrape-google-scholar-py/google_scholar_py/custom_backend/organic_search.py", line 122, in scrape_google_scholar_organic_results
driver = webdriver.Chrome(service=service, options=options)
File "/home/doloroy/.local/lib/python3.10/site-packages/selenium/webdriver/chrome/webdriver.py", line 80, in init
super().init(
File "/home/doloroy/.local/lib/python3.10/site-packages/selenium/webdriver/chromium/webdriver.py", line 101, in init
self.service.start()
File "/home/doloroy/.local/lib/python3.10/site-packages/selenium/webdriver/common/service.py", line 104, in start
self.assert_process_still_running()
File "/home/doloroy/.local/lib/python3.10/site-packages/selenium/webdriver/common/service.py", line 117, in assert_process_still_running
raise WebDriverException(f"Service {self.path} unexpectedly exited. Status code was: {return_code}")
selenium.common.exceptions.WebDriverException: Message: Service /home/doloroy/.wdm/drivers/chromedriver/linux64/112.0.5615/chromedriver unexpectedly exited. Status code was: 127

Wheels failed to build while pip installing

Hi,

I'm using macOS Big Sur, python 3.11.1. Whenever I try to pip install scrape-google-scholar-py, all the requirements are satisfied but the wheels fail to build. I'm not sure what's happening, I've attached the error message below. I'd really appreciate any help, thanks!

Collecting scrape-google-scholar-py
  Using cached scrape-google-scholar-py-0.3.4.tar.gz (37 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Collecting google-search-results>=2.4.2 (from scrape-google-scholar-py)
  Using cached google_search_results-2.4.2-py3-none-any.whl
Collecting selectolax>=0.3.12 (from scrape-google-scholar-py)
  Using cached selectolax-0.3.13-cp311-cp311-macosx_10_9_universal2.whl (4.2 MB)
Collecting parsel>=1.7.0 (from scrape-google-scholar-py)
  Using cached parsel-1.8.1-py2.py3-none-any.whl (17 kB)
Collecting selenium-stealth>=1.0.6 (from scrape-google-scholar-py)
  Using cached selenium_stealth-1.0.6-py3-none-any.whl (32 kB)
Requirement already satisfied: pandas>=1.5.3 in /Users/rohanjha/.pyenv/versions/3.11.1/lib/python3.11/site-packages (from scrape-google-scholar-py) (1.5.3)
Requirement already satisfied: webdriver-manager>=3.8.5 in /Users/rohanjha/.pyenv/versions/3.11.1/lib/python3.11/site-packages (from scrape-google-scholar-py) (3.8.6)
Requirement already satisfied: requests in /Users/rohanjha/.pyenv/versions/3.11.1/lib/python3.11/site-packages (from google-search-results>=2.4.2->scrape-google-scholar-py) (2.28.1)
Requirement already satisfied: python-dateutil>=2.8.1 in /Users/rohanjha/.pyenv/versions/3.11.1/lib/python3.11/site-packages (from pandas>=1.5.3->scrape-google-scholar-py) (2.8.2)
Requirement already satisfied: pytz>=2020.1 in /Users/rohanjha/.pyenv/versions/3.11.1/lib/python3.11/site-packages (from pandas>=1.5.3->scrape-google-scholar-py) (2022.7.1)
Requirement already satisfied: numpy>=1.21.0 in /Users/rohanjha/.pyenv/versions/3.11.1/lib/python3.11/site-packages (from pandas>=1.5.3->scrape-google-scholar-py) (1.24.3)
Collecting cssselect>=0.9 (from parsel>=1.7.0->scrape-google-scholar-py)
  Using cached cssselect-1.2.0-py2.py3-none-any.whl (18 kB)
Collecting jmespath (from parsel>=1.7.0->scrape-google-scholar-py)
  Using cached jmespath-1.0.1-py3-none-any.whl (20 kB)
Requirement already satisfied: lxml in /Users/rohanjha/.pyenv/versions/3.11.1/lib/python3.11/site-packages (from parsel>=1.7.0->scrape-google-scholar-py) (4.9.2)
Requirement already satisfied: packaging in /Users/rohanjha/.pyenv/versions/3.11.1/lib/python3.11/site-packages (from parsel>=1.7.0->scrape-google-scholar-py) (22.0)
Collecting w3lib>=1.19.0 (from parsel>=1.7.0->scrape-google-scholar-py)
  Using cached w3lib-2.1.1-py3-none-any.whl (21 kB)
Requirement already satisfied: Cython>=0.29.23 in /Users/rohanjha/.pyenv/versions/3.11.1/lib/python3.11/site-packages (from selectolax>=0.3.12->scrape-google-scholar-py) (0.29.34)
Requirement already satisfied: selenium in /Users/rohanjha/.pyenv/versions/3.11.1/lib/python3.11/site-packages (from selenium-stealth>=1.0.6->scrape-google-scholar-py) (4.9.1)
Requirement already satisfied: python-dotenv in /Users/rohanjha/.pyenv/versions/3.11.1/lib/python3.11/site-packages (from webdriver-manager>=3.8.5->scrape-google-scholar-py) (1.0.0)
Requirement already satisfied: tqdm in /Users/rohanjha/.pyenv/versions/3.11.1/lib/python3.11/site-packages (from webdriver-manager>=3.8.5->scrape-google-scholar-py) (4.65.0)
Requirement already satisfied: six>=1.5 in /Users/rohanjha/.pyenv/versions/3.11.1/lib/python3.11/site-packages (from python-dateutil>=2.8.1->pandas>=1.5.3->scrape-google-scholar-py) (1.16.0)
Requirement already satisfied: charset-normalizer<3,>=2 in /Users/rohanjha/.pyenv/versions/3.11.1/lib/python3.11/site-packages (from requests->google-search-results>=2.4.2->scrape-google-scholar-py) (2.1.1)
Requirement already satisfied: idna<4,>=2.5 in /Users/rohanjha/.pyenv/versions/3.11.1/lib/python3.11/site-packages (from requests->google-search-results>=2.4.2->scrape-google-scholar-py) (3.4)
Requirement already satisfied: urllib3<1.27,>=1.21.1 in /Users/rohanjha/.pyenv/versions/3.11.1/lib/python3.11/site-packages (from requests->google-search-results>=2.4.2->scrape-google-scholar-py) (1.26.13)
Requirement already satisfied: certifi>=2017.4.17 in /Users/rohanjha/.pyenv/versions/3.11.1/lib/python3.11/site-packages (from requests->google-search-results>=2.4.2->scrape-google-scholar-py) (2022.12.7)
Requirement already satisfied: trio~=0.17 in /Users/rohanjha/.pyenv/versions/3.11.1/lib/python3.11/site-packages (from selenium->selenium-stealth>=1.0.6->scrape-google-scholar-py) (0.22.0)
Requirement already satisfied: trio-websocket~=0.9 in /Users/rohanjha/.pyenv/versions/3.11.1/lib/python3.11/site-packages (from selenium->selenium-stealth>=1.0.6->scrape-google-scholar-py) (0.10.2)
Requirement already satisfied: attrs>=19.2.0 in /Users/rohanjha/.pyenv/versions/3.11.1/lib/python3.11/site-packages (from trio~=0.17->selenium->selenium-stealth>=1.0.6->scrape-google-scholar-py) (22.2.0)
Requirement already satisfied: sortedcontainers in /Users/rohanjha/.pyenv/versions/3.11.1/lib/python3.11/site-packages (from trio~=0.17->selenium->selenium-stealth>=1.0.6->scrape-google-scholar-py) (2.4.0)
Requirement already satisfied: async-generator>=1.9 in /Users/rohanjha/.pyenv/versions/3.11.1/lib/python3.11/site-packages (from trio~=0.17->selenium->selenium-stealth>=1.0.6->scrape-google-scholar-py) (1.10)
Requirement already satisfied: outcome in /Users/rohanjha/.pyenv/versions/3.11.1/lib/python3.11/site-packages (from trio~=0.17->selenium->selenium-stealth>=1.0.6->scrape-google-scholar-py) (1.2.0)
Requirement already satisfied: sniffio in /Users/rohanjha/.pyenv/versions/3.11.1/lib/python3.11/site-packages (from trio~=0.17->selenium->selenium-stealth>=1.0.6->scrape-google-scholar-py) (1.3.0)
Requirement already satisfied: exceptiongroup in /Users/rohanjha/.pyenv/versions/3.11.1/lib/python3.11/site-packages (from trio-websocket~=0.9->selenium->selenium-stealth>=1.0.6->scrape-google-scholar-py) (1.1.1)
Requirement already satisfied: wsproto>=0.14 in /Users/rohanjha/.pyenv/versions/3.11.1/lib/python3.11/site-packages (from trio-websocket~=0.9->selenium->selenium-stealth>=1.0.6->scrape-google-scholar-py) (1.2.0)
Requirement already satisfied: PySocks!=1.5.7,<2.0,>=1.5.6 in /Users/rohanjha/.pyenv/versions/3.11.1/lib/python3.11/site-packages (from urllib3<1.27,>=1.21.1->requests->google-search-results>=2.4.2->scrape-google-scholar-py) (1.7.1)
Requirement already satisfied: h11<1,>=0.9.0 in /Users/rohanjha/.pyenv/versions/3.11.1/lib/python3.11/site-packages (from wsproto>=0.14->trio-websocket~=0.9->selenium->selenium-stealth>=1.0.6->scrape-google-scholar-py) (0.14.0)
Building wheels for collected packages: scrape-google-scholar-py
  WARNING: Building wheel for scrape-google-scholar-py failed: [Errno 13] Permission denied: '/Users/rohanjha/Library/Caches/pip/wheels/52/42'
Failed to build scrape-google-scholar-py
ERROR: Could not build wheels for scrape-google-scholar-py, which is required to install pyproject.toml-based projects

Google Scholar advanced search examples

I cannot try this myself yet (see #8).

I hope it is an easy question to answer.
Would this package permit to run an advanced search like when you use the "advanced search" in Google Scholar web interface?

Find articles

  • with all of the words: zoology aves
  • with the exact phrase: Natural History Museum
  • with at least one of the words: "New York" Paris
  • without the words:
  • where my words occur: [x] anywhere in the article
  • Return articles authored by
  • Return articles published in
  • Return articles dated between: 2017 - 2018

That produces this text in the top textbox:
zoology aves "New York" OR Paris "Natural History Museum"
(as well as limit years in the produced GS url).

It would be nice seeing an example (here or in documentation) of how to do the same with this package.

Thanks a lot in advance
@abubelinha

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.