2013-11-27 19 views
8

Bây giờ tôi đang sử dụng selen để lưu một trang web vào hình ảnh.có thể hiển thị trực tiếp một trang web đến một hình ảnh trong python không?

from selenium import webdriver 
browser = webdriver.Firefox() 
browser.get("some url") 
browser.save_screenshot(img) 
browser.quit() 

Nhưng có vấn đề là mỗi khi cửa sổ bật lên cửa sổ.

Có cách nào có thể hiển thị hình ảnh trực tiếp tới hình ảnh không?

+2

nếu bạn sử dụng Linux/Unix và bạn đang dũng cảm, bạn có thể thử nghiệm với chạy trình duyệt web với [Xvfb ] (http://en.wikipedia.org/wiki/Xvfb), máy chủ X11 hiển thị hình ảnh trong bộ nhớ mà không hiển thị chúng. –

+0

Công cụ kết xuất của Firefox Gecko thực sự có thể được sử dụng để hiển thị "ngoài màn hình" cho bộ đệm. Nhưng cố gắng giao tiếp với Gecko từ Python - đặc biệt là kể từ khi họ ngừng hỗ trợ Gecko nhúng sau 5.0, và không bao giờ hoàn thành các mẫu - là một cơn ác mộng. Bạn _could_ làm điều đó bằng cách viết một ứng dụng XUL/JS, chạy _that_ trong Firefox/XULRunner, sau đó viết kịch bản lệnh đó bằng Python. Nhưng nó vẫn sẽ không vui. – abarnert

+1

một tùy chọn khác là sử dụng các ràng buộc webt Qt: http://www.linux.com/learn/docs/ldp/284676-converting-html-to-pdf-using-python-and-qt – georg

Trả lời

2

Tôi tìm thấy giải pháp thay thế tại How do I run Selenium in Xvfb?

Nó hoạt động tốt trong linux.

from pyvirtualdisplay import Display 
display = Display(visible=0, size=(800, 600)) 
display.start() 
browser = webdriver.Firefox() 
browser.get("some url") 
browser.save_screenshot(img) 
browser.quit() 
display.stop() 
Các vấn đề liên quan