只捕获Google搜索结果中的网站链接

时间:2016-10-26 17:50:00

标签: php arrays file-get-contents

我有以下代码:

$urls = file_get_contents('https://www.google.com/#q=test');

preg_match_all('/\b(?:(?:https?|http):\/\/|www\.)[-a-z]*.com/i', $urls, $content);

$i = 10;

while ( $i <= 50 ) {
$i+= 10;

$urls2 = file_get_contents('https://www.google.com/#q=test&start=".$i."'); // pagination Google search Results

preg_match_all('/\b(?:(?:https?|http):\/\/|www\.)[-a-z]*.com/i', $urls2, $contentLoop);

$totalArray = array_push($content,$contentLoop);


}

print_r($totalArray);

这只打印6号

同时,如何在单个数组中添加多个数组?

我尝试使用函数array_push,但到目前为止没有成功

3 个答案:

答案 0 :(得分:0)

Array_push用于仅将一个元素推送到数组的末尾。您可以在这里使用两种可能的解决方案之一(两者都将您的数据保存到$ content数组中):

  1. 使用array_merge。

    array_merge($content,$contentLoop);
    
  2. 循环$ contentLoop。

    foreach($contentLoop as $item){
        array_push($content,$item);
    }
    

答案 1 :(得分:0)

如果您想将两个arrays合并为一个,那么您可以使用 array_merge - 合并一个或多个数组。

e.g。

<?php
$totalArray = array_merge($content,$contentLoop);
print_r($totalArray);
?>

点击官方文档:

array_merge — Merge one or more arrays

答案 2 :(得分:0)

您似乎正试图抓取Google搜索结果。刮痧违反了Google的服务条款。谷歌有一个网络搜索API,但它在2014年停止使用。谷歌现在提供自定义搜索API。 What are the alternatives now that the Google web search API has been deprecated?