如何在 python selenium 中停止 150 的元素列表长度上限?
How can you stop element list length cap of 150 in python selenium?
我目前正在开发一个使用 python selenium 和 chromedriver 阅读 twitch 聊天的机器人。我遇到一个问题,包含所有 twitch 聊天的元素列表在长度达到 150 个元素后冻结。这是我的一些代码缩短:
while True:
# Scans for the class name of each chat element
chat_messages = driver.find_elements_by_class_name(chatbox_classname)
if len(chat_messages) > prev_chats_len:
for chat in chat_messages[prev_chats_len:]:
# Extract author name and message contents from element and print them
prev_chats_len = len(chat_messages)
一旦 len(chat_messages)
达到 150,问题就开始出现。扫描不会一次检测到超过 150 个聊天元素。我以前的修复是使用 driver.refresh()
删除所有以前的聊天元素,但在这样做时,我错过了刷新期间发送的任何消息。我也尝试删除看到的聊天元素,但这也删除了新的。
这个问题有解决办法吗?我已经搜索了互联网以寻找可能的修复方法但无济于事。非常感谢任何帮助!
这似乎是 Twitch 的一个功能,而不是 Selenium 的一个错误。标准的 Twitch 聊天框元素(未弹出)的消息或行限制在 150 条左右,这意味着您不能向后滚动超过 150 条消息之前,因此您的代码可能会看到新消息但没有意识到。 Twitch 提供(并推荐)用于聊天机器人和聊天抓取的 API,但 Selenium 解决方案是这样的:
last_message = None
while True:
# Scans for the class name of each chat element
chat_messages = driver.find_elements_by_class_name(chatbox_classname)
if chat_messages:
if last_message is not None:
try:
start_position = chat_messages.index(last_message) + 1
except IndexError:
start_position = 0
else:
start_position = 0
for chat in chat_messages[start_position:]:
# Extract author name and message contents from element and print them
last_message = chat_messages[-1]
我目前正在开发一个使用 python selenium 和 chromedriver 阅读 twitch 聊天的机器人。我遇到一个问题,包含所有 twitch 聊天的元素列表在长度达到 150 个元素后冻结。这是我的一些代码缩短:
while True:
# Scans for the class name of each chat element
chat_messages = driver.find_elements_by_class_name(chatbox_classname)
if len(chat_messages) > prev_chats_len:
for chat in chat_messages[prev_chats_len:]:
# Extract author name and message contents from element and print them
prev_chats_len = len(chat_messages)
一旦 len(chat_messages)
达到 150,问题就开始出现。扫描不会一次检测到超过 150 个聊天元素。我以前的修复是使用 driver.refresh()
删除所有以前的聊天元素,但在这样做时,我错过了刷新期间发送的任何消息。我也尝试删除看到的聊天元素,但这也删除了新的。
这个问题有解决办法吗?我已经搜索了互联网以寻找可能的修复方法但无济于事。非常感谢任何帮助!
这似乎是 Twitch 的一个功能,而不是 Selenium 的一个错误。标准的 Twitch 聊天框元素(未弹出)的消息或行限制在 150 条左右,这意味着您不能向后滚动超过 150 条消息之前,因此您的代码可能会看到新消息但没有意识到。 Twitch 提供(并推荐)用于聊天机器人和聊天抓取的 API,但 Selenium 解决方案是这样的:
last_message = None
while True:
# Scans for the class name of each chat element
chat_messages = driver.find_elements_by_class_name(chatbox_classname)
if chat_messages:
if last_message is not None:
try:
start_position = chat_messages.index(last_message) + 1
except IndexError:
start_position = 0
else:
start_position = 0
for chat in chat_messages[start_position:]:
# Extract author name and message contents from element and print them
last_message = chat_messages[-1]