IECapt 是一套在 Windows 底下抓取網頁圖片的命令列(command line)工具,它可以利用 IE 來抓取網頁的畫面,並存成一般常見的圖檔格式,如:png, jpeg, bmp...等。而且 IECapt 是 Open Source 軟體。
它有一些參數如下:
- --help Print this help page and exit
印出參數列表- --url=
The URL to capture (http:...|file:...|...)
指定要抓取的網址- --out=
The target file (.png|bmp|jpeg|emf|...)
指定輸出圖檔的路徑及圖片格式- --min-width=
Minimal width for the image (default: 800)
指定欲截取網頁的最小寬度- --max-wait=
Don't wait more than (default: 90000, inf: 0)
最長的等待時間:指定一段時間,讓程式執行抓取網頁時不要超過這個時間- --delay=
Wait after loading (e.g. for Flash; default: 0)
指定一段等待期間:有些網站有 Flash 特效的,須要久一點的載入時間,才能抓取到正確的 Flash 顯示畫面
使用範例如下:
IECapt --url=http://www.example.com.tw/ --out=localfile.png --delay=500
但萬一抓取的網頁太長,以下圖這個網頁來講,全部長度就有兩千多 pixel,如果我只需要大概一頁或兩頁的長度,那必需還要用額外的軟體來處理自己要的長度:
- --max-height=<int> Maximum height for the image (default: 0(full height))
當沒有指定 max-height 或是 max-height=0 時,是抓取整個頁面的長度。使用的方式如下:
IECapt --url=http://www.example.org/ --out=localfile.png --max-height=800
這表示要抓取的長度為 800 pixel。
以本站為例,抓取長度 800 pixel 的話,則大小看起來如下:
當然,要抓取多大多長, 一切由您自行決定。
如果您有興趣想自行修改這隻程式加入一些小功能或除錯,可由 IECapt 官網處,連結到 SourceForge 的 CVS 處下載最新版的程式。
參考資料:
IECapt
10 則留言:
非常有用,太感谢了!超赞!
如果能做出生成缩略图的功能就更完美了!
想請問版主,我使用IECapt抓取有google map的頁面,一直無法抓取成功…不曉得版主有沒有相關的經驗與方法?
不知道您是怎麼下的指令, 我試了一下, 是可以抓到 google map 的圖.
您好,打擾了,我目前的環境是Win Server 2003 + AppServ + php,我的googmap網頁也能正常顯示(http://163.17.136.62:4382/googlemap.php)
而抓取圖片的程式為(http://163.17.136.62:4382/url2iecapt_.php),程式碼如下:
$server = 'IECapt.exe --url="http://163.17.136.62:4382/googlemap.php" --out=xdxd.png --delay=10000 --max-wait=90000 --silent ';
system($server,$output);
目前在抓圖時都僅只抓到在google map 在載入時的初始點…也試過將delay的值設長一點,還是一樣…
另外我使用令列輸入時,卻抓得到圖…令我百思不得其解,感謝版主撥空回覆,若佔用您太多時間,還請版主見諒,實在不行的話也沒關係,感謝您!
的確是用命令列就可以正常顯示,
但我剛剛再看了一次您的 url2iecapt_.php 頁面,
我發現他已經是正常的了,
我想您應該已經成功了吧?!
感謝版主,但老實說小弟也不曉得為什麼今天試就又可以了…哈,而且好像抓到的map是顯示英文的地名…還是感謝囉^^
請問一下,如果我要抓圖片的網頁,是必須先輸入帳號密碼才能進去的畫面,結果會抓不到耶 ~~~ ,有沒有什麼參數是可以傳入 帳號及 密碼的呢 ??
如果是帳號密碼的話, 或許可以看一下網頁中傳帳號密碼的變數是什麼, 在網址列後面直接用參數傳遞的方式試試看!
ex: http://example.com/login.php?id=me&passwd=1234
帳號&密碼並非傳URL參數,是用.NET的SERVER 事件去觸發的。
張貼留言