centos6下编译webkit时依赖库atk/glib的安装

来源:互联网 发布:广广西电网络收视费 编辑:程序博客网 时间:2024/04/29 21:17

转载请务必注明出处及连接,谢谢!

最近的一个项目是关于网页抓取的,其中遇到的一个问题是js后渲染,这种页面的html内容是通过ajax渲染才得到的。

在爬虫抓取的过程中,如果不采用一些方法,抓下来的数据基本上都是无用的。由于是定向抓取,因此开始的时候我们针对每个站点都编写相应的抓取模板,但后来站点越来越多,且抓取的站点也不定,即使是已经开发抓取模板的站点也总在变幻页面结构,很难保证模板的实时更新,所以,我们希望通过另外的方法来解决。


经过慎重考虑后,我们打算采取:一定的抓取规则+浏览器内核渲染的方式,完成对页面的内容抓取,这样的好处就是不需要每个站点都开发模板,一方面减少了人力的消耗,另一方面减少了维护带来的成本。


浏览器内核选用了webkit,具体为什么选择它,其实就是看着它在多个平台下都有很好的表现。人云亦云吧。但没想到刚上来遇到了很郁闷的问题,webkit在编译时,对依赖库的版本要求非常高,同时使用了很多不常用的包,无奈之下,只好一个个的安装,一个依赖另一个,就这么一个个的安装,非常的费劲。即使是这样,还不是最糟糕的,根据官方的介绍中,将相关的安装包安装之后,重新编译webkit居然发现有个atk需要安装更新的,于是下载atk,编译,又提示glib需要安装更新的,下载源码包,解压,然后:

./configure --prefix=/usr

make

make install

非常顺利,继续安装atk,没想到问题来了,根据提示看意思是没有找到glib-2.0,还提示尝试配置PKG_CONFIG_PATH,好吧,那就:

export PKG_CONFIG_PATH=/usr/lib/pkgconfig

再编译akt,又有提示了:

modversion glib-2.0' returned 2.33.6, but GLIB (2.22.5)
*** was found! If pkg-config was correct, then it is best
*** to remove the old version of GLib. You may also be able to fix the error
*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing
*** /etc/ld.so.conf. Make sure you have run ldconfig if that is
*** required on your system.
*** If pkg-config was wrong, set the environment variable PKG_CONFIG_PATH
*** to point to the correct configuration files

。。。。。。。。。。。。。。。。

晕呀,版本号又对不上了,怎么办?网上搜索了很久,终于找到一个根救命稻草:

http://space.doit.com.cn/?uid-51460-action-viewspace-itemid-4945

这篇文章中遇到的问题,跟我出奇的相似,我就用这个大哥的方法:

make uninstall                             //反安装DOIT博客 l,R!VKB.JU'xZ
#rm /usr/bin/glib*  -f                     //删除系统自带DOIT博客]whqVY-oH
#rm /usr/local/lib/glib-2.0 -fr       //同上
#./configure && make                 //重新配置编译 glib 还在/usr/local目录下, 然后配置环境变量

#export LD_LIBRARY_PATH=/usr/local/lib
#export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
make install

然后再编译atk,ok,顺利通过!!

在次的这个编译安装过程中,也受到的很多的误导,有的说将glib直接卸载,然后重新安装。可怜这些说话不负责的,这个库一旦卸载,系统就崩溃了!问题有多严重,不言而喻吧?

webkitgtk的低版本倒是在早前编译通过了,也进行了简单的测试,算是简单入个门,但这方面的知识实在匮乏,欢迎有这相关开发的朋友多指点、交流。

8j.e,h:S/Kq/i0

原创粉丝点击