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

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

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

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

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

【问题讨论】:

    标签: python selenium instagram custom-scrolling


    【解决方案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 文件会变得容易得多。
    猜你喜欢
    • 1970-01-01
    • 2015-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-06
    • 2020-04-22
    • 2017-03-01
    相关资源
    最近更新 更多