SeimiAgent——基於QtWebkit的通用網頁渲染代理服務

SeimiAgent

SeimiAgent是基於QtWebkit開發的可在服務器端後臺運行的一個webkit服務,可以通過SeimiAgent提供的http接口向SeimiAgent發送一個load請求(需求加載的URL以及對這個頁面接受的渲染時間或是使用什麼代理等參數),通過SeimiAgent去加載並渲染想要處理的動態頁面,然後將渲染好的頁面直接返給調用方進行後續處理。SeimiAgent的加載渲染環境都是通用瀏覽器級的,所以不用擔心他對動態頁面的處理能力。目前SeimiAgent只支持返回渲染好的HTML文檔,後續會增加圖像快照已經PDF的支持,方便更為多樣化的使用需求。

項目託管

下載

目前暫時只支持下面這兩個平臺的二進制版本的維護更新,其他平臺暫時需要自行編譯構建

快速開始

<code>cd /dir/of/seimiAgent./SeimiAgent -p 8000/<code>

執行命令後,SeimiAgent會起一個http服務並監聽你所指定的端口,如例子中的8000端口,然後你就可以通過任何一種你熟悉的語言像SeimiAgent發送一個頁面的加載渲染請求,並得到SeimiAgent渲染好的HTML文檔進行後續處理。

支持的http參數

僅支持post請求

<code>url/<code>

目標請求地址,必填項

<code>renderTime/<code>

在所有資源都加載好了以後留給SeimiAgent去渲染處理的時間,如果是很複雜的動態頁面這個時間可能就需要長一些,具體根據使用情況進行調整。非必填

<code>proxy/<code>

告訴SeimiAgent使用什麼代理,非必填,格式:<code>http|https|socket://user:passwd@host:port/<code>

<code>postParam/<code>

這個參數只接受Json格式的值,值的形式為key-value對,告訴SeimiAgent此次請求為post並使用你給定的參數。

<code>useCookie/<code>

是否使用cookie,如果設置為1則為使用cookie

如何構建

這個過程會花費很長時間如果你覺著很有必要的話,一般情況下更推薦使用發佈好的二進制可執行文件

依賴

<code>sudo apt-get install build-essential g++ flex bison gperf ruby perl libsqlite3-dev libfontconfig1-dev libicu-dev libfreetype6 libssl-dev libpng-dev libjpeg-dev python libx11-dev libxext-dev/<code>

<code>yum -y install gcc gcc-c++ make flex bison gperf ruby openssl-devel freetype-devel fontconfig-devel libicu-devel sqlite-devel libpng-devel libjpeg-devel/<code>

執行

<code>python build.py/<code>

接下來就等吧,國內網絡不好可能還要重來(因為需要先從github上下載qtbase和qtwebkit這兩個依賴,後續如果有時間會把qtbase和qtwebkit拷到國內倉庫一份),4核I5大概半個小時以上,單核雲主機一般2個小時左右,16核以上服務器編譯一般在十分鐘以內

More

更多文檔還在準備中,感謝大家支持Seimi家族(SeimiCrawler,SeimiAgent)