web-scraping - 使用特定主题标签和时间范围的 Instaloader 数据抓取
问题描述
我需要帮助使用 instaloader 从 Instagram 抓取包含特定时间范围内#slowfashion 的帖子。
我想从帖子中抓取视觉和文本数据(特别是发布的图像、它们的描述和评论)。
解决方案
from datetime import datetime
from itertools import dropwhile, takewhile
import instaloader
# Use parameters to save diffrent metadata
L = instaloader.Instaloader(download_pictures=True,download_videos=False,download_comments=False,save_metadata=True)
# Login
username = input("Enter your username: ")
L.interactive_login(username=username)
# User Query
search = input("Enter Hashtag: ")
limit = int(input("How many posts to download: "))
# Hashtag object
hashtags = instaloader.Hashtag.from_name(L.context, search).get_posts()
# Download Period
SINCE = datetime(2021, 5, 1)
UNTIL = datetime(2021, 3, 1)
no_of_downloads = 0
for post in takewhile(lambda p: p.date > UNTIL, dropwhile(lambda p: p.date > SINCE, hashtags)):
if no_of_downloads == limit:
break
print(post.date)
L.download_post(post, "#"+search)
no_of_downloads += 1
推荐阅读
- swiftui - SwiftUI 模态状态未使用 ObservableObject 重置
- javascript - 从我的 php/html 代码中执行提示命令
- python - 从 4326 到 3857 的 GeoPandas 重投影无法正常工作
- node.js - 安装电子失败“无法建立隧道插座”
- java - Azure Function BlobTrigger:Microsoft.WindowsAzure.Storage:无法建立连接,因为目标机器主动拒绝
- javascript - 如何使用 array.filter() 方法过滤 JavaScript 数组?
- php - PHPDoc 引用了一个 dotenv 条目
- c# - 对多个属性求和的更有效方法?
- bash - 在 Bash 中读取键值对,其中值包含分隔符
- php - 内存分配,字节耗尽 PHP/LARAVEL