PHP怎樣抓屏?
Windows下用PHP做網頁
在Apache的服務屬性裡,“登入”選項卡中選中“允許服務與案頭交換”就行了!
?
HWND;$browser->Visible = true;$browser->Width = 500;$browser->Height = 500;$browser->Navigate("http://www.un.org");/* Still working? */while ($browser->Busy) { com_message_pump(4000);}$im = imagegrabwindow($handle, 0);$browser->Quit();imagepng($im, "iesnap.png");?>
?運行這段代碼的時候伺服器上會彈出一個IE視窗並自動開啟指定的網站,截屏後視窗自動關閉,相當傻瓜!
?
?
?
?
?
Linux下用PHP做網頁
上alexa 時,總能看到alexa 顯示被查詢網站的首頁,這個是怎麼實現的呢。
通過察看頁面內容,發現原來是通過調用amazon的服務程式獲得的。
http://ast.amazonaws.com/Xino/?Action=Redirect&Service=AlexaSiteThumbnail&Url=baidu.com&
AWSAccessKeyId=1FVZ0JNEJDA5TK457CR2&Signature=tz4xyqDNcSf8A1v%2BpDo4todvM9c%3D&
Size=Small&Timestamp=2008-03-04T06%3A04%3A47.422Z&
DefaultImage=http%3A%2F%2Fclient.alexa.com%2Fcommon%2Fimages%2Fnoimages.gif
如果想在自己的網站中做出這種效果,完全可以在amazon申請一個ID獲得這樣的調用介面來實現。
但是,這樣怎麼符合探究精神?所以,經過一番翻箱倒櫃,找到下面的方法來自己實現網站的首頁。
實現網站首頁頁面縮圖製作。
步驟:
1. 啟動一個頁面抓取工具,抓取選定的網站首頁;
2.儲存抓取的頁面到伺服器上;
3.按照需要顯示的大小處理抓取的頁面;
4.把結果展現給使用者。
綜上所述,其實關鍵是在於需要有一個穩定的抓取工具,經過在網上尋找,找到下面幾個工具。
在windows環境下,可以考慮這個工具軟體來抓頁面:
IECapt.exe
在linux環境下,可以考慮這個工具軟體來抓頁面:
HTML2Image
獲得抓取工具之後,就可以採用任何一種伺服器語言編寫程式,調用這個抓取工具,然後把抓取結果返回給使用者。
下面是利用IECapt.exe並結合PHP抓取網站的例子。
在Windows/Apache2.2/Php5.2.5 下運行通過。
參考資料:
1.http://www.zubrag.com/scripts/website-thumbnail-generator.php
2.http://www.guangmingsoft.net/htmlsnapshot/html2image.htm
官方url:http://www.guangmingsoft.net/htmlsnapshot/html2image.htm
Linux kernel- 2.2.14及以上: 安裝必需lib及相關軟體
yum install -y glibc gtk+ fontconfig??cairo libpixman pango pango-devel
下載html2image
wget http://www.guangmingsoft.net/htmlsnapshot/html2image.i386.tar.gz
tar xvzf html2image.i386.tar.gz
CD html2image
設定LD_LIBRARY_PATH路徑
export LD_LIBRARY_PATH=./
mkdir /usr/X11R6/lib
ln - s /usr/share/X11 /usr/X11R6/lib/X11
運行Xvfb
./Xvfb :1 -screen 0 640x480x24 -nolisten tcp -audit 4 -auth X1.cfg & export DISPLAY=:1
產生圖片
./html2image www.google.com a.jpg
可忽略的錯誤:
error opening security policy file /usr/X11R6/lib/X11/xserver/SecurityPolicy
Could not init font path element /usr/X11R6/lib/X11/fonts/TTF/, removing from list!
Could not init font path element /usr/X11R6/lib/X11/fonts/Speedo/, removing from list!
Could not init font path element /usr/X11R6/lib/X11/fonts/Type1/, removing from list!
Could not init font path element /usr/X11R6/lib/X11/fonts/CID/, removing from list!
產生1024x768 格式 容量
jpg 871K
gif 4.12M
png 1.13M