这是我能找到的唯一一个可以向下滚动到页面末尾的代码,其他代码都不起作用。问题是whiletrue语句永远不会完成,它会继续尝试向下滚动,即使在它到达底部之后,也不会继续进行下一步的打印。如何结束whiletrue语句并打印结果?谢谢
from selenium import webdriver
url = 'http://www.tradingview.com/screener'
driver = webdriver.Firefox()
driver.get(url)
# Get scroll height
last_height = driver.execute_script("return document.body.scrollHeight")
while True:
# Scroll down to bottom
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
# will give a list of all tickers
tickers = driver.find_elements_by_css_selector('a.tv-screener__symbol')
for index in range(len(tickers)):
print("Row " + tickers[index].text + " ")
在ticker下,它告诉您表中有多少行(匹配项)。因此,一种选择是将可见行数与行总数进行比较。当达到该数量(可见行数)时,退出循环。在
编辑:由于您的设置似乎不允许以前的解决方案,这里有一种不同的方法可以尝试。页面一次加载150行。因此,我们不需要计算可见行的数量,而是使用我们期望的总匹配数/行数(例如4894),然后除以150得到需要滚动的次数。理论上,如果我们滚动至少这么多次,所有行都应该是可见的,我们可以继续代码。在
^{pr2}$相关问题 更多 >
编程相关推荐