笔者在写文章的一个月前因为工作需要,刚刚接触python爬虫,用的scrapy框架。刚开始抓了两个小型的电商网站,也没遇到什么难题,但是就在抓第三个网站时发现该网站所有商品都是通过js生成的,无奈baidu解决办法,看到了几个有用的文章,最终确定了使用spynner,于是找spynner的安装使用教程,但是真正对我有用的很少,而其redhat系统安装包很麻烦,大多数教程都是针对ubuntu和centos的,找来找去,试了无数次,只好用了源码包,最后终于稀里糊涂的竟然安装成功了。下面总结一下在redhat5.5上安装和使用spynner,作为学习记录,以后自己使用也方便。
下面只是粗略的回忆,在安装和使用过程中其实遇到了很多棘手问题,但是当时没有及时记录的习惯,现在完全想不起来那些棘手问题是怎么解决的,以后一定要及时整理文档。
安装:
1、安装anaconda,在网上下载的Anaconda2-4.0.0-Linux-x86.sh;这个东西其实就是python的IDE的一种实现,用它管理、下载、卸载、安装python包很方便,自带pip,scrapy可以直接用它安装;
2、但是上面的工具却不能安装spynner;安装spynner需要:
x11的库:即支持Xwindow,不然会报错安装失败;(我的服务器自带,不用安装,但有些 生产环境中的服务器默认不安装Xwindow,据说单独安装很麻烦,笔者也没试过)
PyQt4:python的开发工具,其实spynner底层调用的是PyQt自带的模块webkit,webkit其实是目前很多浏览器的核心,本质就是无界面的浏览器,所以用它模拟浏览器访问页面。下载PyQt-x11-gp1-4.11.4.tar.gz解压包,tar -xzvf 解压,安装。(它还支持模拟点击事件,模拟提交事件等,不过这些暂时没用到)
sip: 下载sip-4.18.tar.gz包,解压并安装。
spynner: 下载spynner-2.5.zip包,解压并安装
(安装过程中遇到的问题也很多,一时想不起来,后续会来补充)
使用:
使用其实不必多说了,这篇文章已经说的很好很详细了:利用spynner抓取动态页面