2011-11-21 201 views
5

嗨,有没有办法使用PHP从谷歌学术搜索下载BibTeX条目,而无需逐一手动下载BibTeX?例如,设置搜索值(如“research”),然后通过代码自动从链接下载相关的BibTeX。有没有办法从PHP谷歌学术搜索使用PHP下载bibtex

任何帮助,将不胜感激。我尝试获取HTML页面,但是当我尝试获取页面内容时,“Import to BibTeX”链接在检索到的页面内容上消失。

我的代码:

<?php 
$url = 'http://scholar.google.com/scholar?q=honors+college&amp;hl=en&amp;btnG=Search&  amp;as_sdt=1%2C4&amp;as_sdtp=on'; 
$needle = 'Import into bibtex'; 
$contents = file_get_contents($url); 
echo $contents; 
if(strpos($contents, $needle)!== false) { 
echo 'found'; 
} else { 
echo 'not found'; 
} 
?> 
+0

很多谷歌的基于网络的界面都严重依赖于JavaScript,你的屏幕便宜无法处理。你必须弄清楚背景中发生了什么,才能通过脚本复制它。 –

+0

我认为,只有登录后才会显示“导入bitex”链接。尝试登录到Google(我不知道如何编程),然后获取Scholar页面。 – koppor

回答

0

简短的回答是不,你不能做到这一点

谷歌并没有提供API的搜索/学者和使用公司速率限制。问题在于,对于每个BibTex条目,您需要2个附加请求(1个用于查询,1个用于“导入链接”,最后一个用于获取实际的BibTex条目内容)

我写了一个脚本,结果并找到BibTex链接并保存结果。但是,由于费率限制不可行,并且几乎会立即被封锁。

代码可以在这里查看:https://gist.github.com/Tessmore/11099509并且免费使用,但需要您自担风险。