在Instagram框中向下滚动关注者/关注列表

时间:2018-12-08 10:09:03

标签: python selenium instagram

您好:)我正在寻找一种解决方案,用于在Instagram框中向下滚动以下/关注者列表。 我要做的步骤如下:

  • 打开用户A的IG配置文件;
  • 点击“关注者”按钮;
  • IG框中将出现一个包含12个关注者的列表的框。

显示跟随者列表后,当我使用以下一行向下滚动时:

driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")

我知道该框下面的页面向下滚动:(

如何在关注者框中向下滚动列表?

预先感谢:) 玛丽亚。

3 个答案:

答案 0 :(得分:0)

您可以尝试execute_script()并更改.isgrP(如果班级不同)

...
from selenium.webdriver.support.ui import WebDriverWait 
.....
# after click follower link, wait until dialog appear
WebDriverWait(driver, 10).until(lambda d: d.find_element_by_css_selector('div[role="dialog"]'))
# now scroll
driver.execute_script('''
    var fDialog = document.querySelector('div[role="dialog"] .isgrP');
    fDialog.scrollTop = fDialog.scrollHeight
''')

答案 1 :(得分:0)

此方法非常适合我的情况。请不要在循环内更改睡眠时间。它们允许重新加载关注者/在对话框中进行关注,而无需向上滚动。

    FList = driver.find_element_by_css_selector('div[role=\'dialog\'] ul')
numberOfFollowersInList = len(FList.find_elements_by_css_selector('li'))

FList.click()
actionChain = webdriver.ActionChains(driver)
time.sleep(random.randint(2,4))

while (numberOfFollowersInList < max):
    actionChain.key_down(Keys.SPACE).key_up(Keys.SPACE).perform()        
    numberOfFollowersInList = len(FList.find_elements_by_css_selector('li'))
    time.sleep(0.4)
    print(numberOfFollowersInList)
    actionChain.key_down(Keys.SPACE).key_up(Keys.SPACE).perform()            
    time.sleep(1)

答案 2 :(得分:0)

您可以测试以下方法。我测试过,效果很好。

    """Scroll a specific element one or more times with small delay between
    them."""

    while times > 0:
        self.driver.execute_script(
            'arguments[0].scrollTop = arguments[0].scrollHeight',
            element
        )
        time.sleep(.2)
        times -= 1