2016-12-20 181 views
1

我试图从Google搜索结果页中找到并提取“大约16,600,000个搜索结果(0.69秒)”文本。不是结果,只是字符串文本。解压缩后,我想将结果保存在一个数组中,并用其他关键字重复两次。之后,我将循环访问数组以将其打印在表格中。我不知道为什么,但如果我尝试在页面上找到“结果”,我总是告诉我它没有找到任何东西。 当前代码:如何在Google搜索结果页中提取搜索结果的总量

<?php 
$url = "https://www.google.co.uk/#q=cheese"; 
$html = file_get_contents($url); 
if (strpos($html, "results") !== false) { 
    echo "found"; 
} else { 
    echo "not found"; 
} 
?> 
+2

[Google搜索:在PHP中搜索结果页面以获得总体结果]的可能副本(http://stackoverflow.com/questions/2560508/google-search-scrape-results-page-in-php-for-total-结果) – Froxz

+0

据我所知,没有获得所有搜索结果的“白帽子”方式,因为Google不允许它,甚至不把它作为服务销售,并且限制宏/插件/自动化浏览器等。试图抓取他们的网页。一个“黑帽子”的做法是使用ScrapeBox或任何其他基于旋转IP地址和其他标识符以及代理池+欺骗的解决方案来避免被限制。顺便说一句,我没有运行你的代码,但是有很多很好的例子来说明如何用代码或应用程序刮取结果,但是挑战是节流。 –

回答

0

我想这是因为https://www.google.co.uk/#q=cheese只返回一个HTML文件,它运行的是获取的第二个电话搜索结果一些JavaScript代码。

(您可以在浏览器中禁用JavaScript和浏览网页“看”什么的file_get_contents会看到)

0

你将不能够做到这一点使用file_get_contentscurl为其他答案已经指出。

你可能想看看PhantomJS这样的东西。 PhantomJS是一个WebKit浏览器,可以让你得到你想要的结果。

+0

我不认为PhantomJS会对此有所帮助,因为Google会在几页结果页面后对其进行调整。 –