|
|
@ -1271,10 +1271,11 @@ class InstagramService |
|
|
|
|
|
|
|
|
$baseImageDir = "/Users/shixuesen/OneDrive/Pictures/instagram/Likes_new/"; |
|
|
$baseImageDir = "/Users/shixuesen/OneDrive/Pictures/instagram/Likes_new/"; |
|
|
try { |
|
|
try { |
|
|
$maxId = "KLYBARoAIAGQAGgASAAwACAAGAAQAAgACAAIAAgACABjuCa_l9v-dr3zx9F7Xp3d-L1r6Vo3DXT_6R-tfP2empv10y5ZsWklYjcXJGpsa50zvaA350LlHBg6cDmivafrIrGQn7gexjClt1_a0r7vgPD6h-s5vczr03H-cNX93_-_f-1Hv1q7_u31__j_-fP7Syn89b577Gk3bPR9K73-l1cMOsnNQL7SxQf8bSAUtXxMoRCYHMIwAEAWpJua5YZhRhgpBBkEIjIA"; |
|
|
|
|
|
|
|
|
// $maxId = "KLYBARoAIAGQAGgASAAwACAAGAAQAAgACAAIAAgACABjuCa_l9v-dr3zx9F7Xp3d-L1r6Vo3DXT_6R-tfP2empv10y5ZsWklYjcXJGpsa50zvaA350LlHBg6cDmivafrIrGQn7gexjClt1_a0r7vgPD6h-s5vczr03H-cNX93_-_f-1Hv1q7_u31__j_-fP7Syn89b577Gk3bPR9K73-l1cMOsnNQL7SxQf8bSAUtXxMoRCYHMIwAEAWpJua5YZhRhgpBBkEIjIA";
|
|
|
|
|
|
$maxId = null; |
|
|
do { |
|
|
do { |
|
|
$response = $this->queryTimeLineSingle($maxId); |
|
|
$response = $this->queryTimeLineSingle($maxId); |
|
|
Log::info("response: " . $response->asJson()); |
|
|
|
|
|
|
|
|
// Log::info("response: " . $response->asJson());
|
|
|
foreach ($response->getFeedItems() as $item) { |
|
|
foreach ($response->getFeedItems() as $item) { |
|
|
if ($item->getMediaOrAd() == null || $item->getMediaOrAd()->getProductType() == "ad") { |
|
|
if ($item->getMediaOrAd() == null || $item->getMediaOrAd()->getProductType() == "ad") { |
|
|
continue; |
|
|
continue; |
|
|
@ -1511,7 +1512,7 @@ class InstagramService |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
public function scrapeUsersV2($start = 0) |
|
|
|
|
|
|
|
|
public function scrapeUsersV2($start = 0, $singleUser) |
|
|
{ |
|
|
{ |
|
|
|
|
|
|
|
|
// $list = $ig->collection->getFeed("17906577283646940");
|
|
|
// $list = $ig->collection->getFeed("17906577283646940");
|
|
|
@ -1520,19 +1521,24 @@ class InstagramService |
|
|
$baseImageDir = "/Users/shixuesen/OneDrive/Pictures/instagram/"; |
|
|
$baseImageDir = "/Users/shixuesen/OneDrive/Pictures/instagram/"; |
|
|
|
|
|
|
|
|
try { |
|
|
try { |
|
|
$len = Redis::connection()->llen(self::INS_USER_KEY); |
|
|
|
|
|
$toQueryUsers = []; |
|
|
|
|
|
if ($len < 15) { |
|
|
|
|
|
$toQueryUsers = Redis::connection()->lrange(self::INS_USER_KEY, 0, -1); |
|
|
|
|
|
$userList = file("/Users/shixuesen/OneDrive/Pictures/instagram/user.txt"); |
|
|
|
|
|
shuffle($userList); |
|
|
|
|
|
$toQueryUsers = array_merge($toQueryUsers, array_slice($userList, 0, 15 - $len)); |
|
|
|
|
|
Redis::connection()->del(self::INS_USER_KEY); |
|
|
|
|
|
Redis::connection()->lpush(self::INS_USER_KEY, array_slice($userList, 15 - $len)); |
|
|
|
|
|
|
|
|
if ($singleUser == null) { |
|
|
|
|
|
$len = Redis::connection()->llen(self::INS_USER_KEY); |
|
|
|
|
|
$toQueryUsers = []; |
|
|
|
|
|
if ($len < 15) { |
|
|
|
|
|
$toQueryUsers = Redis::connection()->lrange(self::INS_USER_KEY, 0, -1); |
|
|
|
|
|
$userList = file("/Users/shixuesen/OneDrive/Pictures/instagram/user.txt"); |
|
|
|
|
|
shuffle($userList); |
|
|
|
|
|
$toQueryUsers = array_merge($toQueryUsers, array_slice($userList, 0, 15 - $len)); |
|
|
|
|
|
Redis::connection()->del(self::INS_USER_KEY); |
|
|
|
|
|
Redis::connection()->lpush(self::INS_USER_KEY, array_slice($userList, 15 - $len)); |
|
|
|
|
|
} else { |
|
|
|
|
|
$toQueryUsers = Redis::connection()->lrange(self::INS_USER_KEY, 0, 14); |
|
|
|
|
|
Redis::connection()->ltrim(self::INS_USER_KEY, 15, -1); |
|
|
|
|
|
} |
|
|
} else { |
|
|
} else { |
|
|
$toQueryUsers = Redis::connection()->lrange(self::INS_USER_KEY, 0, 14); |
|
|
|
|
|
Redis::connection()->ltrim(self::INS_USER_KEY, 15, -1); |
|
|
|
|
|
|
|
|
$toQueryUsers[] = $singleUser; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
// dump($toQueryUsers);exit;
|
|
|
// dump($toQueryUsers);exit;
|
|
|
|
|
|
|
|
|
// $userList = array_slice($userList, $start, 20);
|
|
|
// $userList = array_slice($userList, $start, 20);
|
|
|
@ -2172,7 +2178,7 @@ class InstagramService |
|
|
'accept-language' => 'zh-CN,zh;q=0.9', |
|
|
'accept-language' => 'zh-CN,zh;q=0.9', |
|
|
'cache-control' => 'no-cache', |
|
|
'cache-control' => 'no-cache', |
|
|
'content-type' => 'application/x-www-form-urlencoded', |
|
|
'content-type' => 'application/x-www-form-urlencoded', |
|
|
'cookie' => 'ig_did=1E87B96C-B061-484F-89A8-C76BF8E11C52; ig_nrcb=1; mid=Y0QEJQAEAAGK3xW8v5Uwszo_cBzM; ds_user_id=361404591; datr=qAREY1W0Mocw3OoikuJcsL1c; csrftoken=v6yBDmsy0g1YECElsFCE3yhSEH5h0iTX; dpr=2; shbid="10286\\054361404591\\0541698829334:01f7237b2f25dc74154df5fa305afa632bcf8a27029847371d5f995727a6a4cfabc1744b"; shbts="1667293334\\054361404591\\0541698829334:01f7b67c47f578b30b8274c3e3faafc65992341ba1001863d36027765056c81f4ad6a5d2"; sessionid=361404591%3ACx32PfLg3x3mRk%3A21%3AAYe0yEhzEfyp2jt5A4v-B-QYLaHy96X2w7KdWj4GCkc; rur="NAO\\054361404591\\0541698894466:01f74eab93e6ec8257115cdd294e615f2353199c3d50460b60c8f7f3abeef630add19495"', |
|
|
|
|
|
|
|
|
'cookie' => 'ig_did=1E87B96C-B061-484F-89A8-C76BF8E11C52; ig_nrcb=1; mid=Y0QEJQAEAAGK3xW8v5Uwszo_cBzM; ds_user_id=361404591; datr=qAREY1W0Mocw3OoikuJcsL1c; csrftoken=v6yBDmsy0g1YECElsFCE3yhSEH5h0iTX; shbid="10286\\054361404591\\0541698829334:01f7237b2f25dc74154df5fa305afa632bcf8a27029847371d5f995727a6a4cfabc1744b"; shbts="1667293334\\054361404591\\0541698829334:01f7b67c47f578b30b8274c3e3faafc65992341ba1001863d36027765056c81f4ad6a5d2"; dpr=2; sessionid=361404591%3ACx32PfLg3x3mRk%3A21%3AAYcj233fJuaA9lomoGZfC9GKVMf66y22dRofAgsNSw0; rur="NAO\\054361404591\\0541698976119:01f786bc7b7786db7bff8c498a277f62edc758684992379447f12c369486e3950bda58f5"', |
|
|
'origin' => 'https://www.instagram.com', |
|
|
'origin' => 'https://www.instagram.com', |
|
|
'pragma' => 'no-cache', |
|
|
'pragma' => 'no-cache', |
|
|
'referer' => 'https://www.instagram.com/', |
|
|
'referer' => 'https://www.instagram.com/', |
|
|
@ -2189,7 +2195,7 @@ class InstagramService |
|
|
'x-csrftoken' => 'v6yBDmsy0g1YECElsFCE3yhSEH5h0iTX', |
|
|
'x-csrftoken' => 'v6yBDmsy0g1YECElsFCE3yhSEH5h0iTX', |
|
|
'x-ig-app-id' => '936619743392459', |
|
|
'x-ig-app-id' => '936619743392459', |
|
|
'x-ig-www-claim' => 'hmac.AR2DN3JP5T1uzerp-Udyl58luFekDMO1MUYZolRys4KAvEKl', |
|
|
'x-ig-www-claim' => 'hmac.AR2DN3JP5T1uzerp-Udyl58luFekDMO1MUYZolRys4KAvEKl', |
|
|
'x-instagram-ajax' => '1006517111', |
|
|
|
|
|
|
|
|
'x-instagram-ajax' => '1006523881', |
|
|
'x-requested-with' => 'XMLHttpRequest' |
|
|
'x-requested-with' => 'XMLHttpRequest' |
|
|
]; |
|
|
]; |
|
|
$options = [ |
|
|
$options = [ |
|
|
@ -2264,9 +2270,9 @@ class InstagramService |
|
|
'accept' => '*/*', |
|
|
'accept' => '*/*', |
|
|
'accept-language' => 'zh-CN,zh;q=0.9', |
|
|
'accept-language' => 'zh-CN,zh;q=0.9', |
|
|
'cache-control' => 'no-cache', |
|
|
'cache-control' => 'no-cache', |
|
|
'cookie' => 'ig_did=1E87B96C-B061-484F-89A8-C76BF8E11C52; ig_nrcb=1; mid=Y0QEJQAEAAGK3xW8v5Uwszo_cBzM; ds_user_id=361404591; datr=qAREY1W0Mocw3OoikuJcsL1c; csrftoken=v6yBDmsy0g1YECElsFCE3yhSEH5h0iTX; dpr=2; shbid="10286\\054361404591\\0541698829334:01f7237b2f25dc74154df5fa305afa632bcf8a27029847371d5f995727a6a4cfabc1744b"; shbts="1667293334\\054361404591\\0541698829334:01f7b67c47f578b30b8274c3e3faafc65992341ba1001863d36027765056c81f4ad6a5d2"; sessionid=361404591%3ACx32PfLg3x3mRk%3A21%3AAYe0yEhzEfyp2jt5A4v-B-QYLaHy96X2w7KdWj4GCkc; rur="NAO\\054361404591\\0541698894613:01f7231e9bcbb4197afc59915f29581b9c48073ef6e286000e7b3864a6f7a3f04a060034"', |
|
|
|
|
|
|
|
|
'cookie' => 'ig_did=1E87B96C-B061-484F-89A8-C76BF8E11C52; ig_nrcb=1; mid=Y0QEJQAEAAGK3xW8v5Uwszo_cBzM; ds_user_id=361404591; datr=qAREY1W0Mocw3OoikuJcsL1c; csrftoken=v6yBDmsy0g1YECElsFCE3yhSEH5h0iTX; shbid="10286\\054361404591\\0541698829334:01f7237b2f25dc74154df5fa305afa632bcf8a27029847371d5f995727a6a4cfabc1744b"; shbts="1667293334\\054361404591\\0541698829334:01f7b67c47f578b30b8274c3e3faafc65992341ba1001863d36027765056c81f4ad6a5d2"; sessionid=361404591%3ACx32PfLg3x3mRk%3A21%3AAYe0yEhzEfyp2jt5A4v-B-QYLaHy96X2w7KdWj4GCkc; dpr=2; rur="NAO\\054361404591\\0541698975782:01f7117c2ee51516e0b7a196b993596df084d840443680e90afd8262e6bb6ad5fd333130"', |
|
|
'pragma' => 'no-cache', |
|
|
'pragma' => 'no-cache', |
|
|
'referer' => 'https://www.instagram.com/maria_grnd/', |
|
|
|
|
|
|
|
|
'referer' => 'https://www.instagram.com/mengxinyue2018/', |
|
|
'sec-ch-prefers-color-scheme' => 'light', |
|
|
'sec-ch-prefers-color-scheme' => 'light', |
|
|
'sec-ch-ua' => '"Chromium";v="106", "Google Chrome";v="106", "Not;A=Brand";v="99"', |
|
|
'sec-ch-ua' => '"Chromium";v="106", "Google Chrome";v="106", "Not;A=Brand";v="99"', |
|
|
'sec-ch-ua-mobile' => '?0', |
|
|
'sec-ch-ua-mobile' => '?0', |
|
|
@ -2280,7 +2286,7 @@ class InstagramService |
|
|
'x-csrftoken' => 'v6yBDmsy0g1YECElsFCE3yhSEH5h0iTX', |
|
|
'x-csrftoken' => 'v6yBDmsy0g1YECElsFCE3yhSEH5h0iTX', |
|
|
'x-ig-app-id' => '936619743392459', |
|
|
'x-ig-app-id' => '936619743392459', |
|
|
'x-ig-www-claim' => 'hmac.AR2DN3JP5T1uzerp-Udyl58luFekDMO1MUYZolRys4KAvEKl', |
|
|
'x-ig-www-claim' => 'hmac.AR2DN3JP5T1uzerp-Udyl58luFekDMO1MUYZolRys4KAvEKl', |
|
|
'x-instagram-ajax' => '1006517111', |
|
|
|
|
|
|
|
|
'x-instagram-ajax' => '1006523881', |
|
|
'x-requested-with' => 'XMLHttpRequest' |
|
|
'x-requested-with' => 'XMLHttpRequest' |
|
|
]; |
|
|
]; |
|
|
$url = "https://i.instagram.com/api/v1/feed/user/{$userId}/?count=12"; |
|
|
$url = "https://i.instagram.com/api/v1/feed/user/{$userId}/?count=12"; |
|
|
|