我正在尝试使用Selenium加载页面并使用Beautiful Soup对其进行解析。我尝试了不同的方法来模拟点击“加载更多”按钮,只有此处的代码有效。 [How to scroll down in Python Selenium step by step
read_mores = driver.find_elements_by_xpath('//*[@data-teach-id='+ tid + ']')
for read_more in read_mores:
driver.execute_script("arguments[0].scrollIntoView();", read_more)
driver.execute_script("$(arguments[0]).click();", read_more)
soup = BeautifulSoup(driver.page_source, 'html.parser')
但是,有时无法加载整个页面。我知道“ clickandwait”可能会起作用,但不知道将代码放在哪里。我也很想知道是否还有其他方法可以处理它。任何帮助将不胜感激!
答案 0 :(得分:0)
我建议这样做:
driver.execute_script("document.querySelector('[data-teach-id=\"" + tid + "\"]').click()")
除了在硒中进行选择并将元素传递到浏览器上下文外,还可以在浏览器上下文中完成所有操作。这样事情发生严重错误的可能性就较小。
只是想了解...
让我们将点击抽象化为一个函数(我想从现在开始,我将这样做):
def click(css):
global driver
driver.execute_script("document.querySelector('" + css + "').click()")
现在我们可以做到:
click('a[data-teach-id="' + tid + '"]')
啊,痛苦减轻了。