我正在使用 phantomjs 使用 python 拍摄网页的快照(例如: http://www.baixaki.com.br/ )。
这是代码:
from selenium import webdriver
driver = webdriver.PhantomJS() # or add to your PATH
driver.get('http://www.baixaki.com.br/')
driver.save_screenshot('screen6.png') # save a screenshot to disk
输入是一个网址,输出是一个图像。
问题是生成的快照又窄又长:
我只想捕获适合页面的内容,而无需滚动和全宽。
例如,这样的事情:
非常感谢您的帮助。
最佳答案
您可以尝试裁剪图像(我使用的是 Python 3.5,因此如果您使用的是 Python 2.X,则可能需要调整以使用 StringIO):
from io import BytesIO
from selenium import webdriver
from PIL import Image
if __name__ == '__main__':
driver = webdriver.PhantomJS('C:<Path to Phantomjs>')
driver.set_window_size(1400, 1000)
driver.get('http://www.baixaki.com.br/')
driver.save_screenshot('screen6.png')
screen = driver.get_screenshot_as_png()
# Crop image
box = (0, 0, 1366, 728)
im = Image.open(BytesIO(screen))
region = im.crop(box)
region.save('screen7.png', 'PNG', optimize=True, quality=95)
信用到期的信用:https://gist.github.com/jsok/9502024
关于python - 如何使用python在phantomjs中拍摄部分网络快照?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39774342/