【问题标题】:Python selenium screen capture not getting whole pagePython selenium 屏幕截图没有得到整个页面
【发布时间】:2014-11-30 09:46:33
【问题描述】:

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

是否可以创建一个通用的网络爬虫来进行我想要做的屏幕截图?我使用的代码是:

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

【问题讨论】:

标签: python selenium scrapy phantomjs


【解决方案1】:

您的建议解决了问题。使用了以下代码(部分从另一个问题的答案中窃取):

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')

【讨论】:

猜你喜欢
  • 2018-01-20
  • 1970-01-01
  • 2021-07-12
  • 1970-01-01
  • 2017-12-25
  • 1970-01-01
  • 2011-08-02
  • 2019-01-31
  • 1970-01-01
相关资源
最近更新 更多