我會從這個頁面截取截圖:http://books.google.de/books?id=gikDAAAAMBAJ&pg=PA1&img=1&w=2500或保存它輸出的圖像。從命令行或python網站截圖
但我找不到方法。有了wget/curl,我得到了一個「不可用的錯誤」,還有其他工具,比如webkit2png/wkhtmltoimage/wkhtmltopng。
是否有一個乾淨的方式來做到這一點用python或從命令行?
此致敬禮!
我會從這個頁面截取截圖:http://books.google.de/books?id=gikDAAAAMBAJ&pg=PA1&img=1&w=2500或保存它輸出的圖像。從命令行或python網站截圖
但我找不到方法。有了wget/curl,我得到了一個「不可用的錯誤」,還有其他工具,比如webkit2png/wkhtmltoimage/wkhtmltopng。
是否有一個乾淨的方式來做到這一點用python或從命令行?
此致敬禮!
有時你需要額外的http頭文件,例如User-Agent才能讓下載工作。在Python 2.7中,您可以:
import urllib2
request = urllib2.Request(
r'http://books.google.de/books?id=gikDAAAAMBAJ&pg=PA1&img=1&w=2500',
headers={'User-Agent':'Mozilla/5.0 (X11; U; Linux i686) Gecko/20071127 firefox/2.0.0.11'})
page = urllib2.urlopen(request)
with open('somefile.png','wb') as f:
f.write(page.read())
或者您可以查看用於在wget或curl中添加http標頭的參數。
非常感謝,我知道它必須是用戶代理。 :) – danbruegge 2013-05-13 19:01:50
但它不會產生捕獲的網站的圖像。圖像將被打破。 – Pant 2016-01-18 09:17:11
@SarvagyaPant我運行了這個腳本並驗證了一個未被破壞的圖像被下載。這花了我不到一分鐘的時間。您可以在做出未經證實的索賠之前儘量減少工作。 – tdelaney 2016-01-18 17:31:34
如果你喜歡,你可以使用ghost.py。 http://jeanphix.me/Ghost.py/
這是一個如何使用它的例子。
from ghost import Ghost
ghost = Ghost(wait_timeout=4)
ghost.open('http://www.google.com')
ghost.capture_to('screen_shot.png')
最後一行將圖像保存在當前目錄中。
希望這有助於
不錯的一個。看起來真的很好,但我不想安裝Qt。 :/ – danbruegge 2013-05-13 19:02:51
我難以得到Ghost來採取截圖始終在無頭的Centos VM。 Selenium和PhantomJS爲我工作:
from selenium import webdriver
br = webdriver.PhantomJS()
br.get('http://www.stackoverflow.com')
br.save_screenshot('screenshot.png')
br.quit
運行此操作時出現此錯誤:「Traceback(最近調用最後一次): 文件」C:\ bunker \ Lib \ site-packages \ custom_selenium.py「,第2行,
嗯,不知道,但我想知道如果你編輯webdriver.py __init__並刪除log_path參數會發生什麼 – billrichards 2014-10-08 17:26:54
[?我認爲這是在不同的線程回答](http://stackoverflow.com/questions/69645/take-a-screenshot-via-a-python-腳本-linux) – user856358 2013-05-02 18:03:41
據我瞭解這一點,他們沒有從網頁截圖,只從一個打開的窗口。但是我的計劃是在沒有自己打開網址的情況下做到這一點。有〜1000圖像保存。只有一些書籍封面。 – danbruegge 2013-05-02 18:10:08