在 Instagram 中抓取一定数量的帖子

Posted

技术标签:

【中文标题】在 Instagram 中抓取一定数量的帖子【英文标题】:Scraping certain number of posts in Instagram 【发布时间】:2019-02-04 14:26:49 【问题描述】:

我正在使用下面的帖子链接的方法来抓取 Instagram 个人资料。 我可以更改检索的图像数量吗?在 Json 响应中,我看到了“has_next_page”参数,但我不确定如何使用它。 提前致谢。 发帖链接: What is the new instagram json endpoint?

使用代码:

r = requests.get('https://www.instagram.com/' + profile + '/')
soup = BeautifulSoup(r.content)
scripts = soup.find_all('script', type="text/javascript", 
text=re.compile('window._sharedData'))
stringified_json = scripts[0].get_text().replace('window._sharedData = ', '')[:-1]
data = json.loads(stringified_json)['entry_data']['ProfilePage'][0]

【问题讨论】:

Instagram 有一个 API,你应该使用它而不是试图抓取他们的网站。 【参考方案1】:

您可以在此处找到 Instagram API:https://www.instagram.com/developer/ 我认为文档非常简洁,您只需注册即可获得访问令牌。

【讨论】:

谢谢,但 API 有限制,我只有几天时间来获取数据集(我需要它用于项目)。【参考方案2】:

您的问题如下:在您的代码中,您从个人资料页面抓取数据,这意味着您只能获取已经加载的图像。 这就是为什么你不能只为它设置一个更大的数字来获得更多图像。

我推荐以下之一:

1.使用 Instagram 的 API,该 API 附带已构建的方法,可以完全按照您的意愿去做(不要重新发明***)。 p>

2. 如果您想自己完成大部分工作(比如说作为练习),我建议您使用 Selenium,它是一种自动化工具。 在您的代码中,您使用 BeautifulSoup 非常适合从 html 文件中检索数据,但您需要做更多的事情:滚动 - 这是为了允许加载更多图片。这样您就可以获得任意数量的图片。

如果您需要示例,可以查看我为 Twitter here 写的类似内容的示例

【讨论】:

以上是关于在 Instagram 中抓取一定数量的帖子的主要内容,如果未能解决你的问题,请参考以下文章

从网站(instagram)获取 JSON

网络抓取 Instagram 追随者数量 BeautifulSoup

如何在 Instagram 上向下滚动到末尾

如何在 python 中抓取 Instagram 帐户信息

R - Instagram 主题标签抓取

有没有办法阻止硒被重定向到登录?不使用 api 抓取 Instagram