我创建了一个用于获取Instagram标签图像作为输出的应用程序。我可以加载图像。但是我需要获得相同尺寸的图像。有人帮我解决这个问题吗?
这是代码...
<?php
function scrape_insta_hash($tag) {
$insta_source =
file_get_contents('https://www.instagram.com/explore/tags/'.$tag.'/');
$shards = explode('window._sharedData = ', $insta_source);
$insta_json = explode(';</script>', $shards[1]);
$insta_array = json_decode($insta_json[0], TRUE);
return $insta_array;
}
$tag = 'savesripada';
$results_array = scrape_insta_hash($tag);
$limit = 15;
$image_array= array();
for ($i=0; $i < $limit; $i++) {
$latest_array = $results_array['entry_data']['TagPage'][0]['graphql']['hashtag']['edge_hashtag_to_media']['edges'][$i]['node'];
$image_data = '<img src="'.$latest_array['thumbnail_src'].'">';
array_push($image_array, $image_data);
}
foreach ($image_array as $image) {
echo $image;
}
?>
答案 0 :(得分:0)
您可以执行以下操作:
<?php
$tag = 'savesripada';
$results_array = scrape_insta_hash($tag);
$image_array = array_filter(
$results_array['entry_data']['TagPage'][0]['graphql']['hashtag']['edge_hashtag_to_media']['edges'],
function($item) {
$size = $item['node']['dimensions']; // example : [height: 810, width: 1080]
return $size['height'] === '130' && $size['width'] === '150'; // Adjust your condition if you want another metrix
});
var_dump($image_array); // Will print image with exactly 150*130
在这里,我使用array_filter
搜索和拾取仅高度== 130和宽度== 150的图像。
答案 1 :(得分:0)
以下代码将图像调整为所需大小。
<?php
$height = 150;
$width = 150;
function scrape_insta_hash($tag) {
$insta_source =
file_get_contents('https://www.instagram.com/explore/tags/'.$tag.'/');
$shards = explode('window._sharedData = ', $insta_source);
$insta_json = explode(';</script>', $shards[1]);
$insta_array = json_decode($insta_json[0], TRUE);
return $insta_array;
}
$tag = 'savesripada';
$results_array = scrape_insta_hash($tag);
$limit = 15;
$image_array= array();
for ($i=0; $i < $limit; $i++) {
$latest_array = $results_array['entry_data']['TagPage'][0]['graphql']['hashtag']['edge_hashtag_to_media']['edges'][$i]['node'];
$image_data = '<img height="'.$height.'" width="'.$width.'" src="'.$latest_array['thumbnail_src'].'">';
array_push($image_array, $image_data);
}
foreach ($image_array as $image) {
echo $image;
}
?>