from selenium import webdriver
from PIL import Image
from io import BytesIO
# 创建浏览器驱动
driver = webdriver.Chrome()
# 打开网页
driver.get("https://www.douban.com/") # 替换为您要截图的网页URL
def get_long_shot(driver,table_element):
# 获取页面的初始高度和宽度
# 获取表格元素的位置和大小
table_location = table_element.location
table_size = table_element.size
# 创建一个与表格相同大小的窗口,并移动到表格位置
driver.set_window_size(table_size["width"], table_size["height"])
driver.set_window_position(table_location["x"], table_location["y"])
# 初始化一个空白长截图
long_screenshot = Image.new('RGB', (table_size["width"], table_size["height"]))
# 向下滚动以截取表格的所有内容
scroll_position = 0
while scroll_position < table_size["height"]:
driver.execute_script(f"window.scrollTo(0, {scroll_position})")
screenshot = Image.open(BytesIO(driver.get_screenshot_as_png()))
long_screenshot.paste(screenshot, (0, scroll_position))
scroll_position += screenshot.height
# 向右滚动以截取表格的所有内容
scroll_position = 0
while scroll_position < table_size["width"]:
driver.execute_script(f"window.scrollTo({scroll_position}, 0)")
screenshot = Image.open(BytesIO(driver.get_screenshot_as_png()))
long_screenshot.paste(screenshot, (scroll_position, 0))
scroll_position += screenshot.width
# 保存长截图
long_screenshot.save("table_long_screenshot.png")