您如何自动滚动 Instagram DM?

Posted

技术标签:

【中文标题】您如何自动滚动 Instagram DM?【英文标题】:How do you automate scrolling Instagram DMs? 【发布时间】:2021-10-27 02:44:58 【问题描述】:

我正在尝试抓取我的 Instagram DM(直接消息)。但是,我不知道如何自动向下滚动列以获取向我发送消息的其他用户名。 我试过this,还有滚动码listed here。

但是,由于 Instagram 的 DM 页面被分成几列,所以这两种方法都不起作用。整页本身不需要滚动。只是第一列。作为参考,这里是 Instagram DM 页面的截图。出于隐私原因,我屏蔽了我的用户名和私信我的人的用户名

有人对我如何修改向下滚动页面以适应列大小的脚本有任何想法吗?

感谢您花时间阅读我的问题并以任何方式提供帮助。

【问题讨论】:

【参考方案1】:

您应该以消息框元素为目标来滚动,而不是定位窗口:

scroll_y = 1000
driver.execute_script(f"document.getElementsByClassName('N9abW')[0].scrollTo(0,scroll_y)")

如果它不适用于类名,请尝试使用 Xpath:

path = "//*[@id='react-root']/section/div/div[2]/div/div/div[1]/div[2]/div/div/div"
script = f"document.evaluate(path, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue.scrollTo(0,scroll_y);"
driver.execute_script(script)

根据需要调整滚动

【讨论】:

非常感谢您抽出宝贵时间帮助我!您的解决方案部分有效。我必须把它放在一个循环中,因为它不会立即滚动到框的底部。我发现如果我把它放在for loop 中并增加到 5,它就可以工作。唯一的问题是我得到重复的答案。【参考方案2】:

您应该尝试使用 Instagram 上的导出数据功能,您将获得您发送或接收的所有消息和媒体的 JSON 文件。这将使您的任务更容易。

https://help.instagram.com/contact/505535973176353

https://www.instagram.com/download/request/

【讨论】:

非常感谢您抽出宝贵时间回答我的问题。你是对的,获取我的数据的 JSON 文件会变得容易得多。

以上是关于您如何自动滚动 Instagram DM?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 UITable 中实现 Instagram 评论的效果?

在 ViewPager 和 Recyclerview 中自动播放视频,如 instagram

如何自动向下滚动html页面?

追加文本时如何防止文本框自动滚动?

js 如何让滚动条自动定位到页面一半的位置,不要误差

C#在拖放时在ListView中实现自动滚动