Python selenium屏幕截图无法获取整页

时间:2014-10-06 06:41:44

标签: python selenium scrapy phantomjs

我正在尝试创建一个通用的webcrawler来访问网站并截取屏幕截图。我使用的是Python,Selnium和PhantomJS。问题是屏幕截图没有捕获页面上的所有图像。例如,如果我找你管,它不会捕获主页图像下面的图像。 (我没有足够高的代表来发布屏幕截图)我认为这可能与动态内容有关,但我已经尝试了等待函数,例如隐式等待和set_page_load_timeout方法。因为这是一个通用的抓取工具,所以我无法等待特定的事件(我想抓取数百个网站)。

是否可以创建一个可以执行我想要的屏幕捕获的通用webcrawler?我正在使用的代码是:

phantom = webdriver.PhantomJS()
phantom.set_page_load_timeout(30)
phantom.get(response.url)
img = phantom.get_screenshot_as_png() #64-bit encoded string
phantom.quit

Here is the image

1 个答案:

答案 0 :(得分:2)

你的建议解决了这个问题。使用以下代码(部分从另一个问题的答案中被盗):

driver = webdriver.PhantomJS()    
driver.maximize_window()
driver.get('http://youtube.com')  
scheight = .1
while scheight < 9.9:
    driver.execute_script("window.scrollTo(0, document.body.scrollHeight/%s);" % scheight)
    scheight += .01        
driver.save_screenshot('screenshot.png')