python - 如何迭代和获取动态列表?
问题描述
几天以来,我努力理解为什么我的代码返回“IndexError”,我会在我的列表中获得 150 个 Instagram 点赞,所以我最近发现,当我滚动到点赞弹出窗口时,它会div
根据我的滚动条生成一个新点:
黄色:滚动时出现新的 div
为此,我做了一个循环,每 5 个喜欢的人使用一个“滚动脚本”
我的代码:
fBody = browser.find_element_by_xpath("/html/body/div[5]/div/div/div[2]/div")
raw_elems = browser.find_elements_by_xpath("//body//div//span[@class='Jv7Aj mArmR MqpiF ']//a[@class='FPmhX notranslate MBL3Z']")
for i in range(0,150):
i += 1
if(i%6) == 5 :
browser.execute_script('arguments[0].scrollTop = arguments[0].scrollTop + arguments[0].offsetHeight;', fBody)
print("-------------------------SCROLL-----------------------------------")
sleep(10)
current = raw_elems[i].get_attribute('href')
followers.append(current)
print(current)
sleep(1)
print(followers)
我真的不明白为什么在第 10 个用户名的末尾,它返回我“列表索引超出范围”,
佩斯^ ^
解决方案
当浏览器运行 JavaScript 添加新元素时,您必须再次使用find_elements
if i % 6 == 5 :
browser.execute_script('arguments[0].scrollTop = arguments[0].scrollTop + arguments[0].offsetHeight;', fBody)
print("-------------------------SCROLL-----------------------------------")
sleep(10)
# get all elements again
raw_elems = driver.find_elements_by_xpath("//body//div//span[@class='Jv7Aj mArmR MqpiF ']//a[@class='FPmhX notranslate MBL3Z']")
推荐阅读
- android - FCM 向特定应用中的主题发送消息
- laravel - Laravel 雄辩的查询将 created_at 日期时间转换为日期
- python - Im not sure how to take filename out of sha256 checksum in Python 3
- r - 创建随机点并从栅格中提取信息
- node.js - 如何使用存储库和一对多关系插入数据?
- wordpress - 在 Woocommerce 中自定义功能变体产品
- rust - 将回调传递给 tokio 任务
- python - AttributeError:“列表”对象在词频逆文档频率中没有属性“较低”
- android - DataBindingComponent 为空,bind(view) 不能为空,DataBinding 在 FragmentStateManager.createView(FragmentStateManager.java:332)
- javascript - 为什么 classList.() 函数中的句点适用于某些而不适用于其他?