Ape*_*ari 1 scrapy web-scraping instagram
我想从 Instagram 上抓取所有包含 #hashtag 的帖子
我从以下网址尝试过:https : //www.instagram.com/explore/tags/perfume/?__a=1
但它只提供一些帖子而不是每个帖子。
仔细看你收到的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
Run Code Online (Sandbox Code Playgroud)
正如评论中所说,要有礼貌。如果您每秒发出太多请求,Instagram 会阻止您。
| 归档时间: |
|
| 查看次数: |
4028 次 |
| 最近记录: |