Python Can';我的列表中没有更多的11个元素(selenium)
我拼命想用selenium将instagram中的追随者添加到列表中,但控制台总是只返回11个元素: 控制台返回: 在我的代码中,我使用Python Can';我的列表中没有更多的11个元素(selenium),python,list,selenium,web-scraping,instagram,Python,List,Selenium,Web Scraping,Instagram,我拼命想用selenium将instagram中的追随者添加到列表中,但控制台总是只返回11个元素: 控制台返回: 在我的代码中,我使用除了以防止他只返回11个元素,滚动动作允许获得更多>11个元素,但似乎只有11个元素 代码: browser.get('https://www.instagram.com/champagnepapi/') browser.find_element_by_xpath('/html/body/div[1]/section/main/div/header/sect
除了
以防止他只返回11个元素,滚动动作允许获得更多>11个元素,但似乎只有11个元素
代码:
browser.get('https://www.instagram.com/champagnepapi/')
browser.find_element_by_xpath('/html/body/div[1]/section/main/div/header/section/ul/li[2]/a/span').click() #Click to followers dialog
followers = []
elems = browser.find_elements_by_xpath("//a[@class='FPmhX notranslate _0imsa ']")
sleep(2)
fBody = browser.find_element_by_xpath("/html/body/div[5]/div/div/div[2]")
for i in range(1,35): # Wanted to get 35 followers, but it only scroll until 35th follower
try:
followers.append(elems[i].get_attribute('href')) # Generate a list where to put the followers name
except:
browser.execute_script('arguments[0].scrollTop = arguments[0].scrollTop + arguments[0].offsetHeight;', fBody) # scroll action
time.sleep(0.5)
print(followers)
我试图找出问题所在,但我看不出:我
感谢您的支持尽管您尝试在for循环中向下滚动,但在启动for循环之前,您将获得列表
元素
中的所有元素。如果问题确实源于滚动,则需要在将数据分配给元素之前执行该操作
我会尝试在browser.get之后直接滚动到你的关注者页面的底部https://www.instagram.com/champagnepapi/)
以真正加载所需的所有跟随者数据,并从循环中删除滚动部分
另外:当您可以在元素中迭代时,为什么要使用范围for循环
for elem in elems:
try:
followers.append(elem.get_attribute('href'))
...
如果这不起作用-您确定您正在使用当前选择获取所有数据吗?尝试上述解决方案后,请尝试打印元素的lenprint(len(elems))
,以查看是否仍然只有11个元素。如果是这样,您可能需要尝试其他选择器
但是,如果长度超过11,您可能需要更改访问hrefelems[i]的方式。获取属性('href')
谢谢您的返回,如果我直接滚动到底部,问题是仅获取最后11个元素,因为instagram制作了dynamicsdiv
(使用react js)只能显示可见元素