Science Score: 18.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (1.3%) to scientific vocabulary

Keywords

google-scholar scraping scraping-website
Last synced: 7 months ago · JSON representation ·

Repository

Basic Info
Statistics
  • Stars: 7
  • Watchers: 1
  • Forks: 2
  • Open Issues: 0
  • Releases: 0
Topics
google-scholar scraping scraping-website
Created over 5 years ago · Last pushed about 5 years ago
Metadata Files
Readme License Citation

README.md

google-scholar-scraper

Google scholar から論文情報を抽出するツールを作成した。
* citations_trend.py:キーワードに関する legend, buzz 論文に関する情報を取ってくる * conf_scrape.py:会議に関する論文を100件取ってくる * scraping_utils.py:Google Scholar のスクレイピングを行うために必要なツール

1. スクレイピングの仕組み

  1. url をリクエスト
    • (大量にリクエストすると BAN されてしまうので注意)
    • (重要そうな論文順に、1ページ10件並んでいる)
  2. html を BeautifulSoup で解析。論文情報抽出。

獲得可能な論文情報 - 論文タイトル、URL、著者、発行年、引用回数、論文ID、スニペット、年毎の被引用数

2. 複合キーワード検索

通常のキーワード検索だと古い年代の有名な文献が出てくる
Figure

→検索の際に分野に関係のあるキーワードだけではなく、
出版(会議)名論文が公開された年も指定したい


複合条件(キーワード・出版名・出版年)で検索できるように修正した 1. キーワード、出版名、出版年を入力 1. url をリクエストし、上位100件を検索 1. 論文の情報(タイトル、著者、出版年、引用数、url、スニペット)を抽出 1. csv に出力

3. ある論文を引用している論文、引用数の推移

対象論文発行年〜2021年間の年ごとの対象論文引用数を取得 - 引用論文の発行年を取得することで実現

後にでる、レジェンド論文、可視化論文の被引用推移を可視化するために使用

被引用推移取得までの流れ 1. 著者、キーワード、出版名、出版年を入力 1. url をリクエストし、上位10件を表示・対象論文を選択 1. 選んだ論文を引用している論文を上位100件検索 1. 論文の情報・各年の引用数の推移を抽出し、csv に出力

4. 分野のレジェンド論文・バズ論文を可視化

分野の初学者に向けて、読んでおくべき2種類の論文を提案
- レジェンド論文:年代を問わず重要な論文 - バズ論文:最近出版され、注目されている論文


それぞれ以下のように定義して、論文情報・引用推移をスクレイピングした - レジェンド論文:単純なキーワード検索で上位に来る論文 - バズ論文:キーワード+出版年の複合検索で上位に来る論文


得られた情報を csv に保存し、Web アプリ上で可視化を行った [link] Figure Figure

Citation (citations_trend.py)

from scraping_utils import *
import csv


def write_paper_csv(keyword, paper, label):
    path = "data/cite_paper.csv"
    data = [keyword, label]
    data.extend(list(paper.values()))
    with open(path, "a") as f:
        csv_writer = csv.writer(f)
        csv_writer.writerow(data)

def write_years_csv(paper_id, years):
    path = "data/cite_years/"+ paper_id +".csv"
    with open(path, "w") as f:
        csv_writer = csv.writer(f)
        csv_writer.writerows(years)

keyword = input("Keyword?: ")
url_leg = make_url(keyword=keyword, conf=None, author=None, year=None)
url_buz = make_url(keyword=keyword, conf=None, author=None, year="2018")
print("Please select LEGEND paper")
leg_paper = grep_candidate_papers(url_leg)

write_paper_csv(keyword, leg_paper, "legend")

url_cite_leg = make_url(keyword=None, conf=None, author=None, year=None, paper_id=leg_paper["paper_id"])
(
    titles_leg,
    urls_leg,
    writers_leg,
    years_leg,
    ci_num_leg,
    p_ids_leg,
    snippets_leg,
) = scraping_papers(url_cite_leg)
cite_year_leg = year_list_to_cite_years(years_leg, int(leg_paper['year']))
write_years_csv(leg_paper['paper_id'],cite_year_leg)

print("Please select BUZZ paper")
buz_paper = grep_candidate_papers(url_buz)

write_paper_csv(keyword, buz_paper, "buzz")

url_cite_buz = make_url(keyword=None, conf=None, author=None, year=None, paper_id=buz_paper["paper_id"])
(
    titles_buz,
    urls_buz,
    writers_buz,
    years_buz,
    ci_num_buz,
    p_ids_buz,
    snippets_buz,
) = scraping_papers(url_cite_buz)
cite_year_buz = year_list_to_cite_years(years_buz, int(buz_paper['year']))
write_years_csv(buz_paper['paper_id'], cite_year_buz)

GitHub Events

Total
  • Watch event: 1
Last Year
  • Watch event: 1

Issues and Pull Requests

Last synced: 7 months ago

All Time
  • Total issues: 6
  • Total pull requests: 26
  • Average time to close issues: 15 days
  • Average time to close pull requests: 1 day
  • Total issue authors: 2
  • Total pull request authors: 3
  • Average comments per issue: 0.33
  • Average comments per pull request: 0.12
  • Merged pull requests: 24
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • a1da4 (4)
  • ebidora (2)
Pull Request Authors
  • a1da4 (11)
  • ebidora (8)
  • k-yoppi (7)
Top Labels
Issue Labels
Pull Request Labels