【问题标题】:cant scroll down list of likers on an instagram post using python and selenium无法使用 python 和 selenium 在 Instagram 帖子上向下滚动喜欢的人列表
【发布时间】:2020-08-10 11:21:33
【问题描述】:

我尝试从任何用户的第一个 instagram 帖子中获取喜欢的人列表。当您运行代码时,您会收到错误“索引超出范围”,因为它没有向下滚动。我该如何向下滚动??出了什么问题??

def get_user_post_likers(self, user, limit=10):
    self.nav_user(user)
    sleep(self.random_number_gen())
    first_photo = self.driver.find_element_by_class_name("eLAPa")
    first_photo.click()
    sleep(self.random_number_gen())
    likers_list_btn = self.driver.find_element_by_xpath("/html/body/div[4]/div[2]/div/article/div[3]/section[2]/div/div[2]/button/span")
    likers_list_btn.click() 
    sleep(self.random_number_gen())
    fbody = self.driver.find_element_by_xpath("/html/body/div[5]/div/div/div[2]/div/div")
    scroll = 0
    while scroll <5:
        self.driver.execute_script('arguments[0].scrollTop = arguments[0].scrollTop + arguments[0].offsetHeight;', fbody)
        scroll += 1
        sleep(2)
    likers_list = []
    for i in range(limit):
        likers = self.driver.find_elements_by_class_name('FPmhX')[i]
        likers_list.append(likers.text)  
        print(len(likers_list)) 
    print(likers_list)
  1. 列表项

    return likers_list
    

【问题讨论】:

    标签: javascript python python-3.x selenium web-scraping


    【解决方案1】:

    this answer 中所述,您可以使用以下代码: driver.execute_script("window.scrollTo(0, Y)") 其中 Y 是高度(在全高清显示器上为 1080(根据 1920x1080p)。 然后,您可以创建一个循环并始终将您的 Y 值更改为不同的数字(以使其连续向下滚动)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-09
      • 1970-01-01
      相关资源
      最近更新 更多