im trynig从任何用户的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)
列表项
return likers_list
答案 0 :(得分:0)
如this answer中所述,您可以使用以下代码:
driver.execute_script("window.scrollTo(0, Y)")
其中Y是高度(在FullHD显示器上是1080(按照1920x 1080 p)。
然后,您可以创建一个循环,并始终将Y值更改为其他数字(以使其连续向下滚动)。