【问题标题】:Get "Title" & "Description" from external page link从外部页面链接获取“标题”和“描述”
【发布时间】:2016-12-14 11:02:45
【问题描述】:

我正在尝试从外部页面链接源获取标题、描述。当我试图获取 Facebook 页面源并返回另一个页面的源代码时,这不起作用。它正在其他网站上运行,如谷歌等。这是我在 PHP 中的代码:

$ch = curl_init();
   curl_setopt($ch, CURLOPT_HEADER, 0);
   curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
   curl_setopt($ch, CURLOPT_URL, $url);
   curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
   $data = curl_exec($ch);
   curl_close($ch);
   return $data;
}

public function previewLink(){
   $url = "https://www.facebook.com/NASA/";
   $html = $this->file_get_contents_curl($url);
   $title = "";
   $description ="";
   $image = "";

   //parsing begins here:
   $doc = new \DOMDocument();
   @$doc->loadHTML($html);
   $nodes = $doc->getElementsByTagName('title');
   $title = $nodes->item(0)->nodeValue();
  }

我不知道我面临的问题是什么。有人可以提出一些建议吗?提前致谢。

【问题讨论】:

    标签: php facebook curl title


    【解决方案1】:

    Facebook 在 http 请求中需要 UserAgent 字符串。您可以使用此添加它

    curl_setopt($ch, CURLOPT_HTTPHEADER, array('User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_4) AppleWebKit/600.7.12 (KHTML, like Gecko) Version/8.0.7 Safari/600.7.12'));
    

    仅供参考:当有人在没有登录的情况下进入页面时,facebook 会显示验证码页面。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-06-03
      • 2012-02-08
      • 2011-09-01
      • 2013-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多