获得谷歌的搜索结果,PHP
我试图让谷歌搜索结果的HTML使用file_get_contents
获得谷歌的搜索结果,PHP
所以像这样的搜索词
intitle:index.of ”last modified” ”parent directory” (mp3|wma|ogg) "test" -htm -html -php -asp
:
$file = file_get_html("http://www.google.com/search?q=intitle:index.of%20%20%94last%20modified%94%20%20%94parent%20directory%94%20%20%28mp3|wma|ogg%29%20%20%22test%22%20-htm%20-html%20-php%20-asp");
(基本上是这样的搜索词:
http://www.google.com/search?q=intitle:index.of ”last modified” ”parent directory” (mp3|wma|ogg) "test" -htm -html -php -asp
)
和做503
有谁知道我能得到这个工作?
由于
刮是against Google's TOS(读5.3)。您应该使用他们的API:
http://code.google.com/apis/ajaxsearch/documentation/
有关于如何在PHP中使用它的例子。使用API还返回一个结构化的对象(JSON),这样你可以节省用CPU功率(解析)和带宽资源(JSON只包含数据)。
搜索API已被弃用。你有这个正则表达式来解析HTML:
/URL \ Q =([^ <> &“] *)&
要小心,不要 “垃圾邮件” 谷歌,限制你的查询号码是多少? ,使用了大量的代理,模仿人类行为......
我只是回答这个问题。标记的“答案”不是答案,更像是“不这样做”,但不回答问题......无论如何...... – 2013-10-04 23:11:59
的问题是有点过时,但我还是给它一个镜头的答案也不是很大。
首先,使用的file_get_contents ()是不会与谷歌合作。
谷歌WIL l拒绝你的查询(并且它是这样做的:-)
由于所选答案正确表示,他们的TOS表示你不允许自动访问它。他们为此辩护他们的服务。
但是这是你的决定,忽略刮除大型企业的非刮TOS,也这是你的决定在法律约束力的方式其实就是接受TOS。
这表示,有几种可能继续:
如果你有要求,你可以使用正常的互联网连接(没有代理等)的量非常低,但你需要让你的查询多一点智能。 。看看“卷曲”为PHP,它很可能已经安装。
设置用户代理是这样的:"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36"
这将使谷歌认为你是一个Chrome浏览器,而不是PHP脚本。
从这里开始,您可以使用DOM或正则表达式或类似的方法来继续解析HTML内容。
这里的问题在于Google会定期更改html源代码和检测逻辑,这种情况每隔几个月到一年就会发生一次。
看看这里的源代码和信息:http://google-scraper.squabbel.com
你会发现开源PHP解析程序和卷曲代码一些用户代理,应该可以帮助您快速开始。
如果您需要刮取大量结果,您需要多一点操作,如果您需要更多帮助,请在此处发表评论。
截至2010年11月1日,Google Web Search API已被正式弃用(因此只允许有限的请求)。新API可在https://developers.google.com/custom-search/v1/overview – krishna 2013-09-07 17:15:39