Google Scholar ID について調べてみた (2021.01.01)
Google Scholar API を使いこなす前に
Google Scholar ID をどう取得するのか調べてみた
(2021.01.01) まだ Qiita 記事が無いので手探りでやっていきます
調べる前の予測としては
- Google Search API を使った手法
- Web スクレイピングを使った手法
- 文献管理ソフト (Mendeley, ReadCube, Zotero) を使った手法
があると考えています
目的としては
- 著者 ID
- タイトル
- トピック
- パブリケーション年
を簡単に取得出来る API の調査
最終的には JavaScript で上記のリソースを取得出来る様に実装してみたい
google scholar api
と検索した時に出てきた記事、動画
- https://scholar.google.co.uk/intl/en/scholar/inclusion.html (google scholar)
- https://developers.google.com/custom-search/v1/overview (developers.google.com)
API / Package --- ライブラリ
- https://pypi.org/project/scholarly/ (PyPI <Python> - Scholarly)
- http://www.icir.org/christian/scholar.html (icir <Python> - scholar.py)
- https://gitlab.com/jamaicanmoose/google-scholar-python-api (gitlab <Python> - google-scholar-python-api)
- https://cran.r-project.org/web/packages/scholar/scholar.pdf (cran <R> - "Scholar" Package)
- https://rdrr.io/cran/scholar/api/ (rdrr.io <R> - "Scholar" Package)
- https://www.npmjs.com/package/google-scholar (npm <JavaScript> - google-scholar)
- https://packagist.org/packages/bborrel/google-scholar-profile-parser (packagist <PHP> - bborrel/google-scholar-profile-parser)
- https://www.drupal.org/docs/contributed-modules/metatag-google-scholar (drupal <PHP> - Metatag Google Scholar)
- https://harzing.com/resources/publish-or-perish (publish-or-perish, 使い過ぎると IP address が ban になる危険あり)
- https://www.semanticscholar.org/ (Semantic Scholar API)
- https://www.ncbi.nlm.nih.gov/home/develop/api/ (PubMed or NCBI API)
API / Package --- 無料から有料まで
-
https://rapidapi.com/collection/serp-api
- https://rapidapi.com/hartator/api/serpapi/pricing (Free)
- https://rapidapi.com/duckduckgo/api/duckduckgo-zero-click-info/pricing (Free)
- https://rapidapi.com/dataforseo/api/dataforseo-rank-tracker-and-serp/pricing (SERP = Free)
- https://rapidapi.com/serpsbot/api/google-search5/pricing (Free 100/day quota)
- https://www.octoparse.com/tutorial-7/scraping-search-results-from-google-scholar (octoparse <Web Scraping Tool> 15 day free trial)
- https://serpwow.com/google-scholar-api (SerpWow, SERP API, $45/month)
- https://scaleserp.com/google-scholar-api (Scale SERP, SERP API, free 125 searches / month, $19/month from + 5,000 searches~)
- https://serpapi.com/google-scholar-api (SerpAPI, $50/month)
- https://serpstack.com/ (serpstack, SERP API, free 100 searches / month, $30/month)
- https://www.scraperapi.com/blog/best-google-scholar-apis-proxies/ (5 best Google Scholar API in 2020)
Video
- https://www.youtube.com/watch?v=3bq_fxAHaTo (Youtube - SerpApi - Google Scholar Cite API)
University / College (.edu)
-
https://libraries.mit.edu/scholarly/publishing/apis-for-scholarly-resources/ (MIT)
- APIs
- Scopus
- Web of Science Lite
- Springer
- ScienceDirect
- ORCID
- etc
- APIs
- https://guides.lib.umich.edu/c.php?g=282982&p=6467779 (UMICH)
- https://scalar.usc.edu/works/guest-author/how-to-scrape-google-scholar (USC)
Forum / Article
- https://github.com/fredrike/googlescholar-api (GitHub - Google Scholar API)
- https://stackoverflow.com/questions/62938110/does-google-scholar-have-an-api-available-that-we-can-use-in-our-research-applic (Stackoverflow - 1)
- https://stackoverflow.com/questions/6109520/can-anybody-share-a-simple-example-of-using-mathematica-and-google-scholar-to-ex?rq=1 (Stackoverflow - 2)
- https://www.researchgate.net/post/Can-you-suggest-a-good-data-scraping-tool-for-google-scholar (ResearchGate - 1)
- https://news.ycombinator.com/item?id=16633923 (ycombinator.com - 1)
- https://www.reddit.com/r/AskAcademia/comments/5n1dw0/if_google_scholar_opened_up_an_api_tomorrow_what/ (reddit - 1)
- https://academia.stackexchange.com/questions/34970/how-to-get-permission-from-google-to-use-google-scholar-data-if-needed (Academia - 1)
- https://harzing.com/publications/white-papers/google-scholar-a-new-data-source-for-citation-analysis
- https://www.quora.com/Is-it-possible-to-extract-text-from-Google-Scholar-results (Quora - 1)
Scraping / Text-Data Mining
- https://www.nature.com/articles/d41586-018-04190-5 (Scraping)
- https://dev.to/iankerins/build-your-own-google-scholar-api-with-python-scrapy-4p73 (Python Scraping)
- https://medium.com/@ProxiesAPI.com/scraping-google-scholar-with-python-and-beautifulsoup-850cbdfedbcf (Medium - Scraping)
Google Chrome Extension
Google Scholar が駄目な理由
SERP = Search Engine Results Pages
npm
(2021.01.01) たったの 9 Hits で特に使われているライブラリで weekly downloads 500 程
- https://www.npmjs.com/package/google-search-results-nodejs (Weekly Downloads: 400 ~ 1000)
- https://www.npmjs.com/package/google-scholarly (Weekly Downloads: ~ 50)
- https://www.npmjs.com/package/scholarly (Weekly Downloads: ~ 50)
- https://www.npmjs.com/package/gatsby-source-google-scholar (Weekly Downloads: ~ 50)
- https://www.npmjs.com/package/google-scholar-extended (Weekly Downloads: ~ 50)
- https://www.npmjs.com/package/bibtex-search (Weekly Downloads: ~ 50)
- https://www.npmjs.com/package/google-scholar-link (Weekly Downloads: ~ 50)
- https://www.npmjs.com/package/google-scholar (Weekly Downloads: ~ 50)
- https://www.npmjs.com/package/oghma (Weekly Downloads: ~ 50)
Google's Programmable Search Engine
- https://developers.google.com/custom-search/docs/overview (Google's Programmable Search Engine)
Google Scholar Papers (2021.01.01)
400 million
Google's Programmable Search Engine
Overview | Programmable Search Engine | Google Developers
For everyone, there are two choices,
- Standard Search Element
- Free
- Client side javascript
- Custom Search JSON API
- 100 search queries per day for free
- $5 per 1000 queries, up to 10k queries per day.
- Client side or server side JSON API
Standard Search Element
Programmable Search Element Control API | Programmable Search Engine
Custom Search JSON API
Custom Search JSON API
Custom Search JSON API | Programmable Search Engine
下記の記事を2まで完全にトレース
👇
Custom Search APIを使ってGoogle検索結果を取得する - Qiita
上記のセクションの 3 から勝手が違ってきます
- Custom Search Engine(CSE)の取得
「検索するサイト」は "https://scholar.google.com/" で
ウェブ全体を検索をOFFにしたままにしておいて下さい
- Google API Client Libraries(Python)のインストール
ここでGoogle API Client Libraries (JavaScript) のインストール
API Client Libraries | Google Developers
JavaScript 用 と Nodejs 用がありました
JavaScript 用
Nodejs 用
Nodejs 用
Nodejs という事は npm/npx が使える!
インストールが簡単 ♬♪♫
👇
npm install googleapis
あれ❓
npm でそういえば検索したけど、このライブラリ無かったなあ(上記参照)と思ってぐぐったらありました
googleapis - npm
桁が違う😲
Weekly Downloads: 375,273
皆さんもコレ使って下さい
さてさて
先ずは、 Express generator で簡易アプリを作っていきます
$ npx express-generator
$ npm i
$ npm i nodemon googleapis
"scripts": {
"start": "node ./bin/www",
"test": "nodemon ./bin/www"
}
これで準備オーケー
eslint や babel は一旦忘れて goolgeapis で触っていきます
何故か、このままの初期設定だと
例えば "memory" と検索すると著者が最初に出てきて、論文が出てこない
著者が一ページ目に出てくる
これは避けたい
ちょっと本家 ( https://scholar.google.com/ )
の様に検索出来ないので
次は下記の
Semantic Scholar API
を弄ってみる
Semantic Scholar API
Semantic Scholar Papers (2021.01.01)
180 million
先ずは、 Express generator で簡易アプリを作っていきます
$ npx express-generator
$ npm i
$ npm i nodemon googleapis
"scripts": {
"start": "node ./bin/www",
"test": "nodemon ./bin/www"
}
これで準備オーケー
eslint や babel は一旦忘れて goolgeapis で触っていきます
PubMed/NCBI API
- https://www.ncbi.nlm.nih.gov/home/develop/api/ (PubMed or NCBI API)
PubMed Papers (2021.01.01)
30 million
Microsoft Academic
Microsoft Academic Publications
248 million
Google API (Custom Search) の仕様が
site:https://scholar.google.com/ "トピック"
と検索しても
どうしても著者名でしか検索されないので
(文献タイトルでは検索されないので)
JavaScript は諦め
Python でウェブスクレイピングを目指します
Qiita 検索
基本
- Pythonでかんたんスクレイピング (JavaScript・Proxy・Cookie対応版) - Qiita
- python超初心者がスクレイピングしてみる - Qiita
- Pythonスクレイピングメモ - Qiita
- Dockerで手軽にスクレイピング環境を手に入れる - Qiita
- Python3.5のAsync構文を利用してスクレイピングを行う - Qiita
ケーススタディ
- Google Scholarから論文の基本情報をpython で取得する - Qiita
- Python でいろいろスクレイピング - Qiita
- 【Python】スクレイピング→データ収集→整形→分析までの流れを初心者向けにまとめておく ~Pythonに関するはてな記事を10年分スクレイピングし、Pythonトレンド分析を実際にやってみた~ - Qiita
- Python初心者による食べログのスクレイピング - Qiita
- PythonでTwitterスクレイピング&データフレーム化 - Qiita
- Pythonでメルカリから最安値をスクレイピングで取得する - Qiita
- Pythonでスクレイピング - Yahoo!ファイナンスから投資信託の基準価格を取得する - Qiita
google-scholar-scraper · PyPI
install
pip install google-scholar-scraper
scholar · PyPI
install
pip install scholar