使用 Curl 获取 Instagram 的关注者数据
Getting Instagram's followers data using Curl
我正在尝试通过网络抓取和 curl 获取 Instagram 帐户的关注者数量。使用他们的 API 可能更容易,但我想知道为什么这不起作用,因为在很多情况下我通过 HTML.
获得数据
static $url='https://www.instagram.com/cats_of_instagram/';
function getUrlContent($url){
try {
$curl_connection = curl_init($url);
curl_setopt($curl_connection, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($curl_connection, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl_connection, CURLOPT_SSL_VERIFYPEER, false);
//Data are stored in $data
$data = (curl_exec($curl_connection));
$position = strpos($data,"<span data-reactid=\".0.1.0.0:0.1.3.1.0.2\"> followers</span>");
print_r($position);
curl_close($curl_connection);
} catch(Exception $e) {
return $e->getMessage();
}
}
问题是函数 strpos
没有 return 位置。
$position = strpos($data,"<span data-reactid=\".0.1.0.0:0.1.3.1.0.2\"> followers</span>");
你不能那样做。
页面加载后,您要查找的元素由 javascript 呈现。
curl
不会等待脚本到 运行(也不会 运行)。它只是 returns html.
您可以通过打印 $data
轻松验证这一点。或者查看页面的来源。
要"see"您要查找的元素,您需要使用DOM检查器。
我正在尝试通过网络抓取和 curl 获取 Instagram 帐户的关注者数量。使用他们的 API 可能更容易,但我想知道为什么这不起作用,因为在很多情况下我通过 HTML.
获得数据static $url='https://www.instagram.com/cats_of_instagram/';
function getUrlContent($url){
try {
$curl_connection = curl_init($url);
curl_setopt($curl_connection, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($curl_connection, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl_connection, CURLOPT_SSL_VERIFYPEER, false);
//Data are stored in $data
$data = (curl_exec($curl_connection));
$position = strpos($data,"<span data-reactid=\".0.1.0.0:0.1.3.1.0.2\"> followers</span>");
print_r($position);
curl_close($curl_connection);
} catch(Exception $e) {
return $e->getMessage();
}
}
问题是函数 strpos
没有 return 位置。
$position = strpos($data,"<span data-reactid=\".0.1.0.0:0.1.3.1.0.2\"> followers</span>");
你不能那样做。
页面加载后,您要查找的元素由 javascript 呈现。
curl
不会等待脚本到 运行(也不会 运行)。它只是 returns html.
您可以通过打印 $data
轻松验证这一点。或者查看页面的来源。
要"see"您要查找的元素,您需要使用DOM检查器。