Javascript 如何从谷歌学者页面中提取合著者
我正试图使用JavaScript从谷歌学者页面中刮取合著者的姓名 只有在单击出版物链接后,才能看到出版物的所有合著者。然后弹出一个页面,显示共同作者。但是,为每一份出版物这样做是非常耗时的。 我甚至无法使用axios在发布链接上获取数据,例如,这会导致CORS*错误 如何高效地获取合著者姓名Javascript 如何从谷歌学者页面中提取合著者,javascript,api,url,dom,web-scraping,Javascript,Api,Url,Dom,Web Scraping,我正试图使用JavaScript从谷歌学者页面中刮取合著者的姓名 只有在单击出版物链接后,才能看到出版物的所有合著者。然后弹出一个页面,显示共同作者。但是,为每一份出版物这样做是非常耗时的。 我甚至无法使用axios在发布链接上获取数据,例如,这会导致CORS*错误 如何高效地获取合著者姓名 我对你的问题的理解是,你想在页面右侧列出所有合著者的姓名。对吗?这里是我的解决方案,以获得他们所有的名字 首先,它们的所有详细信息都在标记内,而所有这些li标记都在内。所以,您必须做的是,使用const l
我对你的问题的理解是,你想在页面右侧列出所有合著者的姓名。对吗?这里是我的解决方案,以获得他们所有的名字 首先,它们的所有详细信息都在
标记内,而所有这些li标记都在
内。所以,您必须做的是,使用const list=document.querySelectorAll(“.gsc\u rsb\u a li”)
命令为所有创建对象
下一个阶段是在这些li标记中获取textContent
表单的多个
。请看,spans提供了所有合著者的详细信息,共有三位。如果我们使用textContent
属性,第一个将返回空字符串,第二个由名称、指定、位置、电子邮件id组成,第三个只有指定和位置。我所做的是从第二个名字中提取名字。这是通过使用多个属性indexOf()
和slice()
实现的。最后一件事是push()
将它们的名称放入一个数组中
const list = document.querySelectorAll(".gsc_rsb_a li");
var slicedName = new Array(); //Array to save names
var description; //To store third span details
var descriptionAndName; //To store second span details
var index;
for(var i=0;i<list.length;i++){
description = list[i].querySelectorAll("span")[2].textContent //will get discription of authors
descriptionAndName = list[i].querySelectorAll("span")[1].textContent //will get discription + name
index = descriptionAndName.indexOf(description);
slicedName.push(descriptionAndName .slice(0,index));
}
const list=document.queryselectoral(“.gsc_rsb_a li”);
var slicedName=新数组()//用于保存名称的数组
var描述//存储第三个span详细信息的步骤
变量描述和名称//存储第二个跨度详细信息的步骤
var指数;
对于(var i=0;i每个出版物标题都包含一个javascript链接,触发弹出窗口并加载其他html内容(包括作者)
您可以使用浏览器扩展来抓取javascript呈现的内容,而不是试图找出XHR请求
- 导航CSS选择器用于“显示更多”按钮,打开弹出窗口详细信息,关闭弹出窗口
- 出版物标题、作者、年份、期刊/书籍的内容CSS选择器
基于这些选择器,我使用开源的scrape扩展创建了一个scrape场景
"2.一个新的研究发现了一个新的研究成果,一个新的研究发现了一个新的研究成果,一个新的研究发现了一个新的研究成果,一个新的研究成果,一个新的研究报告,一个新的研究成果,一个新的研究成果,一个新的研究成果,一个新的研究成果,一个新的研究成果,一个新的研究成果,一个新的研究成果,一个新的研究,一个新的研究,一个新的研究成果,一个新的研究,2。2。2。2。1。2。2。2。2。2。2。2。2。2。2。2。2。2。2。2。2。他们的研究结果,他们的研究结果是,他们在一个新的一个新的研究中,他们的研究成果是,他们的一个新的研究成果是,他们的一。2。6。6。6。6。6。6。他们的。他们的研究。他们的O769/pf9tFm5avzWbcAGl5km7h0TBprFNn83PoDTbC1c0sFDUa8h4RfXkgehcNJXDMIa4O2FC5C13RpaEhVPBGufLCnRwxHo4bB5/zEHAg“
在扩展内,执行以下操作:新建项目>配置哈希>粘贴上述哈希(不带引号)>保存、刮取、查看结果>导出为csv
免责声明:我是扩展作者。您好,我感谢您的回答,但我正试图提取问题中每一篇文章的共同作者。请参考图片以获取参考。
var authors=document.querySelectorAll(".gs_gray"); //selecting all the names into an object
var authorName=new Array();
for(var i=0;i<authors.length;i+=2){
authorName.push(authors[i].textContent);
}