互联网数据采集工具Pholcus(幽灵蛛)使用小结

Posted by admin on 2016, September 6

互联网数据采集工具Pholcus(幽灵蛛)使用小结

引用简介

Pholcus(幽灵蛛)是一款纯Go语言编写的支持分布式的高并发、重量级爬虫软件,定位于互联网数据采集,为具备一定Go或JS编程基础的人提供一个只需关注规则定制的功能强大的爬虫工具。

它支持单机、服务端、客户端三种运行模式,拥有Web、GUI、命令行三种操作界面;规则简单灵活、批量任务并发、输出方式丰富(mysql/mongodb/csv/excel等)、有大量Demo共享;另外它还支持横纵向两种抓取模式,支持模拟登录和任务暂停、取消等一系列高级功能。

github地址

https://github.com/henrylee2cn/pholcus

使用小结

github的readme上已经介绍了他的相关特点,文档也已经有了大部分,这里简单记录一下几个小问题

  1. 关于代码的放置,下载好源码之后,按教程运行,可以正常打开web页面,这时候如果写规则,可以选择两种,一种是动态规则,也就是html结尾的文件,需要放在pholcus/spiders中,命名要写规整,这样就能识别出来了,此种规则修改之后无需重编译,只需重启服务即可,方便快捷,缺点是例子较少,无从参考;另一种也是我主要使用的一种,即静态规则,这种就用go语言写的,示例丰富,可参考性高,你可以写在示例文件夹中,然后无需修改其他东西,直接编译就能看到自己的规则了,当然就像根目录下的example_main.go中写的 “ 同样你也可以自由添加自己的规则库
  2. 关于代理,软件支持http代理来爬数据,就像配置中的代码所示 proxylib string = WORK_ROOT + "/proxy.lib" 需要自己弄一个文件,写好http代理如 http://127.0.0.1:8888 完了就能在启动的时候看到在线代理IP筛选完成,共计:5 个接下来在爬数据的过程中你就能按时间自动换代理了。
  3. 代理在启动的时候会自动检查是否能通,我这里是mac,发现怎么也不能ping,最后无解,只好修改代码,绕过ping,即找到 alive, _, _ := ping.Ping(self.allIps[proxy], CONN_TIMEOUT)注释掉即可
  4. 关于代码的修改,如果更改了配置,或者其他你想要的更改发现没有生效,这时候需要删除 $GOPATH/bin 下的pholcus_pkg文件夹,重新go install即可生成新的文件夹,那些就生效了,但是有些比如代理ip文件就要重新加到里面去了。
  5. 如果是你自己搭建的http代理,有时候发现怎么也不能用了,可能是机器发现了这个端口的异常,帮你关掉了,可以去机器上看看是不是禁用了sudo iptables -L -n --line-number,如果是的话就删掉即可sudo iptables -D INPUT 1

写在后面

调配置写规则都是可以随着时间的流逝完成的,最难的是最后爬的时候,因为这种站一般都会有一些防爬的策略,说到最后其实还是使用尽可能多的ip代理来爬,有时候伪造ip也是不行的,注意暂停时常,并发不要高,我为了安全甚至设置为1,其他的就看运气了。