【问题标题】:PHP - Get the prices displayed by googlePHP - 获取谷歌显示的价格
【发布时间】:2019-02-26 11:51:47
【问题描述】:

我想在一个 PHP 文件中从 Google 搜索中恢复所有价格。

价格搜索示例:https://www.google.com/search?ei=QBN1XIfYDrG5gwfmq6bwDg&q=860+evo+500go&oq=860+evo+500go&gs_l=psy-ab.3..0j0i10j0i22i10i30j0i22i30l3.5044.6363..6572...0.0..0.59.347.6......0....1..gws-wiz.......0i71j0i20i263j0i67j0i203.HYjd3deC288

file_get_contents 不起作用,我必须像本主题一样使用 CURL:

PHP file_get_contents error 503

现在我不知道如何创建脚本的下一个。

我想我必须创建一个循环并使用函数 preg_match 来只保留我需要的东西。

对吗?我可以举个例子吗?

这是我脚本的开头:

            $url = "https://www.google.com/search?ei=QBN1XIfYDrG5gwfmq6bwDg&q=860+evo+500go&oq=860+evo+500go&gs_l=psy-ab.3..0j0i10j0i22i10i30j0i22i30l3.5044.6363..6572...0.0..0.59.347.6......0....1..gws-wiz.......0i71j0i20i263j0i67j0i203.HYjd3deC288";

            function curl_get_file_contents($URL) {
                $c = curl_init();
                curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
                curl_setopt($c, CURLOPT_FOLLOWLOCATION, 1);
                curl_setopt($c, CURLOPT_URL, $URL);
                $contents = curl_exec($c);
                curl_close($c);

                if ($contents) return $contents;
                else return FALSE;

                foreach ($variable as $key => $value) {

                    echo $result;
                }
            }

【问题讨论】:

  • 您将进行多少次搜索?如果您每天进行 100 次或更少的查询,Google's Custom Search API 可能是一个更好的解决方案。
  • 当它返回搜索页面的内容时,您希望循环什么?
  • 我的项目的目标是比较几个月的价格。所以我需要每月保存一次价格,例如在 bdd 中。这样我就可以知道我是否有兴趣根据一年中的时间为我的个人电脑购买新材料。

标签: php regex google-search


【解决方案1】:

这不会可靠地工作。 Google 搜索对抓取非常敏感,并在怀疑自动访问时迅速开始响应验证验证码的请求。

我建议您寻找更好的信息来源来获取您需要的信息,否则您只会冒着编写无法运行的代码的风险,因为您无法始终如一地首先获取数据。

【讨论】:

    猜你喜欢
    • 2020-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多