[英]Scrolldown a table inside a div tag in through Selenium in Python
我想使用 python 中的 Selenium 框架滚动到https://covid19.who.int/table的最后一行。
看下面我的片段
url = 'https://covid19.who.int/table/'
Path_ChromeDriver = 'E:\chromedriver_win32\chromedriver.exe'
driver = webdriver.Chrome(Path_ChromeDriver)
driver.get(url)
time.sleep(10)
driver.execute_script("window.scrollTo(0,document.body.scrollHeight)")
target = driver.find_element_by_xpath('//div[@role="rowgroup"]//div[@role="row"][last()]//div[@class="column_Deaths td"]/div')
driver.execute_script("arguments[0].scrollIntoView(true);", target)
但这并不能帮助我向下滚动 div 标签。 任何帮助将不胜感激。 我希望从“美洲”行开始从表中提取所有数据。
有关我需要的数据,请参见屏幕截图。 在此输入图片描述 在此先感谢
首先使用这行代码获取表的所有行。
rows = driver.find_elements_by_css_selector("div[class=\"tr depth_0 \"]")
现在像这样滚动到最后一行:
driver.execute_script("arguments[0].scrollIntoView()",rows[len(rows)-1]
这样,表格将滚动到行变量中的最后一行。
因此,如果要滚动到表的末尾,则必须使用 while 循环并再次获取所有行并 scrollIntoView 最后一行。 While 循环,因为我检查了查找所有行只会返回 20-28 行,这些行在页面上可见。 因此,使用 while 循环到 go 直到结束。
首先,你可以使用 css 选择器到 select 你想要的表格,就像下面的代码,为什么在后面添加一个 div 因为目标是 div 下面的 div 其中 class 是 tbody
$('div[class="tbody"]>div')
第二,使用scrollTop滚动表格,给可以控制你想滚动多少的数字
$('div[class="tbody"]>div').scrollTop=10000
如果你把这段代码放在控制台,表格会向下滚动~
最后,稍微改变一下以适应脚本
driver.execute_script("document.querySelector('div[class=\"tbody\"]>div').scrollTop=10000")
给你~
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.