有人可以分享使用Mathematica和Google学者提取学术研究信息的简单示例

| 如何使用Mathematica和Google学术搜索来查找一个人在2011年发表的论文数量?     
已邀请:
Google学术搜索没有正式的API AFAIK,因此不太适合该目标。它也不会以结构化(例如XML)格式提供结果。因此,我们必须求助于一种快速(而且非常脆弱!)的文本模式匹配技巧,例如:
 searchGoogleScholarAuthor[author_String] := 
 First[StringCases[
   Import[\"http://scholar.google.com/scholar?start=0&num=1&q=\" <> 
     StringDrop[
      StringJoin @@ (\"author:\" <> # <> \"+\" & /@ 
         StringSplit[author]), -1] <> \"&hl=en&as_sdt=1,5\"], ___ ~~ 
     \"Results\" ~~ ___ ~~ \"of about\" ~~ Shortest[___] ~~ 
     p : Longest[(DigitCharacter | \",\") ..] ~~ ___ ~~ \".\" ~~ ___ ~~ 
     \"(\" ~~ ___ :> p]]

In[191]:= searchGoogleScholarAuthor[\"A Einstein\"]

Out[191]= \"6,400\"

In[190]:= searchGoogleScholarAuthor[\"Einstein\"]

Out[190]= \"9,400\"

In[192]:= searchGoogleScholarAuthor[\"Wizard\"]

Out[192]= \"197\"

In[193]:= searchGoogleScholarAuthor[\"Vries\"]

Out[193]= \"70,700\"
如果您不喜欢字符串结果,请加1。如果要限制发布年份,可以在搜索字符串中添加“ 2”并更改开始和结束年份  适当地。 请注意,使用流行名称的作者会产生很多虚假的点击,因为无法唯一标识单个作者。此外,Scholar还返回了多种热门内容,包括引文,书籍,再版等。因此,实际上,这对计数不是很有用。 一点解释: Scholar将作者和合著者的姓名缩写和名字分成几个
author:
字段,并加上+。代码的“ 4”部分负责解决这一问题。
StringDrop
删除最后一个
+
。 “ 7”部分包含一个大文本模式,该模式主要搜索Scholar放置在每个结果页面顶部的文本,并包含命中数。然后隔离此编号并返回。     

要回复问题请先登录注册