你可以使用selenium中的execute_script方法来实现滚动截屏的功能,从而可以看到整个页面。
下面是一个示例代码:
from selenium import webdriver
# 启动浏览器
driver = webdriver.Chrome()
# 打开页面
driver.get('https://www.example.com')
# 获取页面的高度
js = 'return Math.max( document.body.scrollHeight, document.body.offsetHeight, document.documentElement.clientHeight, document.documentElement.scrollHeight, document.documentElement.offsetHeight);'
height = driver.execute_script(js)
# 设置浏览器窗口大小,以便能够完全显示页面
driver.set_window_size(1366, height)
# 逐段截图并保存
scroll_height = 500 # 每次滚动的高度
scroll_top = 0 # 页面顶部的初始位置
count = 1 # 截图计数器
while scroll_top < height:
driver.save_screenshot(f'screenshot{count}.png') # 保存截图
scroll_top += scroll_height
driver.execute_script(f'window.scrollTo(0, {scroll_top});')
count += 1
# 关闭浏览器
driver.quit()
这段代码首先会打开一个指定的网页,然后获取页面的总高度。接下来,它会设置浏览器窗口的大小以适应整个页面,并逐段滚动截图。每次滚动截图后,会将页面顶部的位置向下移动指定的高度。
你可以根据需要修改代码来适应你的实际情况,比如调整滚动的高度和截图的命名方式。
运行代码后,会生成多张截图,可以通过查看这些截图来查看完整的页面内容。