我有一个简单的卷曲脚本,搜索谷歌的“蝙蝠侠”,然后将结果保存在一个文件...PHP - 迭代谷歌搜索结果
有人能告诉我通过文件迭代的好方法请找到每个搜索结果标题和URL?
这是我的代码:
function get_remote_file_to_cache()
{
$the_site = "https://www.google.se/webhp?sourceid=chrome-instant&rlz=1C5CHFA_enSE555SE556&ion=1&espv=2&ie=UTF-8#newwindow=1&q=batman";
$curl = curl_init();
$fp = fopen ("temp_file.txt", "w");
curl_setopt ($curl, CURLOPT_URL, $the_site);
curl_setopt ($curl, CURLOPT_FILE, $fp);
curl_setopt ($curl, CURLOPT_RETURNTRANSFER, TRUE);
curl_exec ($curl);
$httpCode = curl_getinfo ($curl, CURLINFO_HTTP_CODE);
if ($httpCode == 404)
{
touch ('cache/404_err.txt');
} /*
* else { touch('cache/'.rand(0, 99999).'--all_good.txt'); }
*/
else
{
$contents = curl_exec ($curl);
fwrite ($fp, $contents);
}
curl_close ($curl);
fclose ($fp);
}
echo rand(1, 425).get_remote_file_to_cache();
对此的任何答案只会暂时工作,至多。谷歌积极努力阻止这类事情发生,他们将修改HTML,移动东西,混淆结果,如果您提出太多请求,请禁止您的IP或粘贴验证码 –
这不适用于要查询的活动项目每天数百次,我想从中学习,对我自己更有教育意义;) – Ryan
好吧,禁止/验证码问题不会影响你,但是在解压缩结果中的任何成功仍然只是暂时的,直到格式为结果页面发生变化(可能是您下次加载它时)。你需要通过下载的HTML文件查看你想要的位(标题和URL),看看你是否可以编写一些正则表达式来提取这些。请记住,这是谷歌的皇冠上的宝石 - 不要低估他们付出了多少努力,确保这种事情不能可靠地自动化。祝你好运:) –