【问题标题】:Scraping in PHP在 PHP 中抓取
【发布时间】:2016-06-06 08:31:09
【问题描述】:

我想构建一个代码,如果我给用户名,它会从任何 instagram 用户的页面源中转储下面突出显示的值(关注者数量)。 我对 curl 和 DOM 概念有点了解。[![在此处输入图像描述][1]][1]

function callInstagram($url)
{
    $ch = curl_init();
    curl_setopt_array($ch, array(CURLOPT_URL => $url, CURLOPT_RETURNTRANSFER => true, CURLOPT_SSL_VERIFYPEER => false, CURLOPT_SSL_VERIFYHOST => 2)) $result = curl_exec($ch); curl_close($ch); return $result; }

$url = "instagram.com/xyz/";;
$dom = new domDocument();
$dom->loadHTML(callInstagram($url));
$dom->preserveWhiteSpace = false;
$tables = $dom->getElementsByTagName('script');
print_r($tables); ?> Still building

【问题讨论】:

  • 你能展示你的代码吗?
  • $url, CURLOPT_RETURNTRANSFER => true, CURLOPT_SSL_VERIFYPEER => false, CURLOPT_SSL_VERIFYHOST => 2)) $result = curl_exec($ch); curl_close($ch);返回$结果; } $url = "instagram.com/ravij28"; $dom = 新的 domDocument(); $dom->loadHTML(callInstagram($url)); $dom->preserveWhiteSpace = false; $tables = $dom->getElementsByTagName('script'); print_r($tables); ?> 仍在建设中
  • 在您的问题中更新您的代码,而不是在评论中。
  • 你的结果是 JSON,所以你应该使用类似json_decode
  • 但我仍然被困在如何将 DOM 与最初是 HTML 的 url 一起使用

标签: php web-scraping web-crawler instagram


【解决方案1】:

看起来您正在尝试获取 instagram 的数据。

最好使用 instragram 的 API 来实现您的目标。

链接:https://www.instagram.com/developer/

编辑:

另一种方式假设你可以得到所有 html 的字符串。

接下来,使用正则表达式提取 json 字符串。 你可以使用这个正则表达式:_sharedData = (.*);

最后使用json_decode将字符串转成json。

【讨论】:

  • 在最近更改了他们的权限审查之后,很难获得 API,我只想在我的项目中添加一个功能
  • 哦,知道了。但是,您想要的结果在<script> 标签的变量中,很难从那里获取数据。
  • 难道没有办法吗?
  • 已编辑,看看
  • 这看起来不像是一个答案——_sharedData = (.*); 是如何在使用 PHP 时起作用的正则表达式?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-04
  • 2010-11-25
相关资源
最近更新 更多