module BibtexCleaner::Google

Public Class Methods

bibtex_for(querystr, limit = 4) click to toggle source
# File lib/bibtex_cleaner/google.rb, line 6
def self.bibtex_for(querystr, limit = 4)
  agent = Mechanize.new
  page = agent.get("https://scholar.google.de/scholar", q: querystr)

  page.links.
    map { |l| l.href =~ /\?cites=(\d+)/; $1 }.compact[0..limit].
    map do |id|
    bibtex = GScholar::Paper.new(id).bibtex
    bibtex = bibtex.encode('ASCII', :invalid => :replace, :undef => :replace)
    BibTeX.parse(bibtex).entries.values
  end.flatten
end