使用 imgkit 获取 Web 屏幕截图
Taking Web screenshot using imgkit
我正在尝试使用 imgkit 截取屏幕截图,
options = {
'width': 1000,
'height': 1000
}
imgkit.from_url('https://www.ozbargain.com.au/', 'out1.jpg', options=options)
我得到的是
实际看起来有点不同。可能这是由于 javascript 没有被执行 [这是一个猜测]。您能否告诉我如何使用 imgkit 执行此操作。任何建议的图书馆也会有所帮助。
您可以使用Selenium控制网络浏览器Chrome或Firefox 运行 JavaScript并且浏览器具有截屏功能。但是 JavaScript 可能会显示 windows 消息,您可能必须在代码中使用 click()
关闭这些消息 - 但您必须手动查找(在浏览器中的 DevTools
中)class 名称、ID 或其他有助于 Selenium 识别页面上按钮的值。
from selenium import webdriver
from time import sleep
#driver = webdriver.Firefox()
driver = webdriver.Chrome()
driver.get('https://www.ozbargain.com.au/')
driver.set_window_size(1000, 1000)
sleep(2)
# close first message
driver.find_element_by_class_name('qc-cmp-button').click()
sleep(1)
# close second message with details
driver.find_element_by_class_name('qc-cmp-button.qc-cmp-save-and-exit').click()
sleep(1)
driver.get_screenshot_as_file("screenshot.png")
#driver.quit()
我正在尝试使用 imgkit 截取屏幕截图,
options = {
'width': 1000,
'height': 1000
}
imgkit.from_url('https://www.ozbargain.com.au/', 'out1.jpg', options=options)
我得到的是
实际看起来有点不同。可能这是由于 javascript 没有被执行 [这是一个猜测]。您能否告诉我如何使用 imgkit 执行此操作。任何建议的图书馆也会有所帮助。
您可以使用Selenium控制网络浏览器Chrome或Firefox 运行 JavaScript并且浏览器具有截屏功能。但是 JavaScript 可能会显示 windows 消息,您可能必须在代码中使用 click()
关闭这些消息 - 但您必须手动查找(在浏览器中的 DevTools
中)class 名称、ID 或其他有助于 Selenium 识别页面上按钮的值。
from selenium import webdriver
from time import sleep
#driver = webdriver.Firefox()
driver = webdriver.Chrome()
driver.get('https://www.ozbargain.com.au/')
driver.set_window_size(1000, 1000)
sleep(2)
# close first message
driver.find_element_by_class_name('qc-cmp-button').click()
sleep(1)
# close second message with details
driver.find_element_by_class_name('qc-cmp-button.qc-cmp-save-and-exit').click()
sleep(1)
driver.get_screenshot_as_file("screenshot.png")
#driver.quit()