我想删除所有包含来自Instagram的#hashtag的帖子
我从尝试过: https://www.instagram.com/explore/tags/perfume/?__a=1
但是它只给出一些帖子,而不是每个帖子。
答案 0 :(得分:0)
您可以使用此库https://github.com/postaddictme/instagram-php-scraper/blob/master/examples/getMediasByTag.php
该函数需要多种媒体作为参数,因此,如果要恢复井号的所有媒体,则必须在JSON供稿器上获取“ graphql-> hashtag-> edge_hashtag_to_media-> count”的值{ {3}}
答案 1 :(得分:0)
仔细查看您收到的json。
导航到graphql -> hashtag -> edge_hashtag_to_media -> page_info -> end_cursor
这是用于指定下一批媒体的标识符,如下所示:
https://www.instagram.com/explore/tags/perfume/?__a=1&max_id=QVFDNWJDZnpGbElpdEV5Q19aaldYWUsxZnc1YUd0Z21yNUZsOWw4V2NxX05ZWnZjT2pRb3lrY29ocDJnM0VNallUWGZVeDIxVURnUzltdHpBR1A1a0VRNw==
您可以重复此过程以获取更多媒体用于请求的主题标签。
一个朴素的示例,请求(python3)提取前10个批次。
import requests
import json
from time import sleep
max_id = ''
base_url = "https://www.instagram.com/explore/tags/perfume/?__a=1"
for i in range(0, 10):
sleep(2) # Be polite.
if max_id:
url = base_url + f"&max_id={max_id}"
else:
url = base_url
print(f"Requesting {url}")
response = requests.get(url)
response = json.loads(response.text)
try:
max_id = response['graphql']['hashtag']['edge_hashtag_to_media']['page_info']['end_cursor']
print(f"New cursor is {max_id}")
except KeyError:
print("There's no next page!")
break
正如评论中所说,要有礼貌。如果您每秒拍摄太多请求,Instagram将阻止您。