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)