从google scholar收集引文图表

etudier的Python项目详细描述


tudier是一个小python程序,它使用Seleniumrequests-html来 驱动一个non headless浏览器来收集一个特定的引文图 Google Scholar引文或一组搜索结果。产生的网络是 使用networkxGephi文件和D3可视化方式写出。D3 可视化可能需要一些工作,因此如果您添加样式,请提交 拉取请求。

如果你想知道为什么它使用无头浏览器,那是因为谷歌 quite protective的数据,通常会要求你解决一个验证码 (识别照片中的街道标志、汽车等)。tudier将允许您 完成这些任务,然后继续执行 正在收集数据。

安装

在进行其他操作之前,您需要安装ChromeDriver。如果你使用 在OS X上自制这很简单:

brew install chromedriver

然后您需要安装Python 3和:

pip3 install etudier

运行

要使用它,首先需要导航到google scholar上的一个页面 例如,这里有一页引用雪莉的引文 奥特纳的Theory in Anthropology since the Sixties。然后开始etudier向上 指着那一页。

% etudier 'https://scholar.google.com/scholar?start=0&hl=en&as_sdt=20000005&sciodt=0,21&cites=17950649785549691519&scipsc='

如果你有兴趣从谷歌学者的关键词搜索结果开始 你也可以这么做。例如,这里是搜索“cscw内存”的url 如果我对讨论cscw会议和内存的论文感兴趣:

% etudier 'https://scholar.google.com/scholar?hl=en&as_sdt=0%2C21&q=cscw+memory&btnG='

注意:引用url很重要,这样shell就不会解释 与号作为进程背景的尝试。

--页面

默认情况下,tudier将收集该页上的10条引文,然后查看 前十个引用每一个的堡垒。所以你将不再 收集的引文超过100条(每页10条*10条)。

如果希望获得多页结果,请使用--pages。为了 示例这将导致收集的结果不超过400个(20*20):

% etudier --pages 2 'https://scholar.google.com/scholar?start=0&hl=en&as_sdt=20000005&sciodt=0,21&cites=17950649785549691519&scipsc=' 

--深度

最后,如果你想看看引文的引文 --深度参数。

% etudier --depth 2 'https://scholar.google.com/scholar?start=0&hl=en&as_sdt=20000005&sciodt=0,21&cites=17950649785549691519&scipsc='

这将收集最初的10条引文,前10条引文 每一个,然后前10个引用,所以不超过1000个引用1000 引文(10*10*10)。不再是因为肯定会有 每本书引用的出版物的副本。

--输出

默认情况下,将写入名为output.gexf的文件,但您可以更改 使用--output选项。输出文件将包含基本元数据 收集自谷歌学者,包括:

  • id-由google分配的集群标识符
  • url-发布的url
  • title-出版物的标题
  • authors-以逗号分隔的出版物作者列表
  • year-出版年份
  • 引用-引用该出版物的其他出版物的数目
  • 被url引用-引用出版物列表的google学者url

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java ParsePushReceiver参数   java如何从设备读取完整数据?   java将java_设置为home,但忽略错误   java如何从歌曲中对专辑进行排序?   java libnaude+windows 10 x64+Eclipse   java如何将maven目标更改为如图所示的想法中的quickicon?   java swing布局中心面板,可滚动显示多个窗口窗格   使用MOSQUITO代理的mqtt中的java SSL   java如何通过属性值获取XML字符串   java在服务器每次启动时停止GWT编译   java如何让javac搜索类路径的子目录?   可以比较java中的两个不同类吗?   JAVAAndroid活动内部类中的lang.NoClassDefFoundError   java HttpServletRequest获取请求头参数块   C++socket与java客户端的连接   java如何在Apache commons http客户端上使用SSL客户端证书   使用预编译正则表达式模式提高java速度   JavaRhino将两个已编译脚本合并为一个脚本