采集程序(spider)

  采集程序(spider)应该主是搜索引擎中的一个主要部份了,当然我们今天说的不是百度,google的spider。

    我以抓取论坛为例给大家大致介绍一下spider的工作原理。

    首先,我们要一个入口url,在百度它们的最早的入口url是什么让我们就不知道啦。以采集论坛为例,这个也可以算是种垂直搜索引擎吧,如qihoo,关于垂直搜索引擎的概念大家可以搜索一下。垂直搜索引擎的入口是需要手动去搜集的,因为电脑不会知道哪个url是论坛,我的做法就是把搜集的url放在一个配置文件里。

    下面我们就要进入到我们需要的页面,这里首先是要到取到它的分页,分析页面的分页html专门写一个正则作为匹配方式。得到所有分页的url。我使用的是取得总页数就好了,然后所有列表页就是加上分页数就好了。这样我们就可以获取到所有列表页的的url的,接着就是循环读取这些列表页了。

    接着就是在列表页中取到所有详细页面的url了,能过与此正则可以取到所有列表url。到此我们就取到了所有我们要的url接着就是抓取详细页面的url的信息了,依然是使用正则,取到我们要的字段内容。一般要在内容前后取比较有标志性的html作为分界符。这样我们就可以取到我们要的字段内容。论坛比较好办就那些信息,也比较有规则,其它行业信息就比较麻烦,如时间,价格等字段需要格式化。

    我们只要把我们抓取到的信息保存到自己的数据库里就好了,如果是搜索引擎肯定还要进行关键字分词索引的工作。这个就比较复杂了。

    在其中还涉及到编码问题,各目标网站的编码可能是不同的,但是抓取过来后要统一转成自己站的编码。

    第一次采集当然是抓取后有页面信息,在后续采集我们只要采集新的页面就好了,如果列表是以时间为排序就比较好办,我们只要记录好最后一次采集的url就好了。如果不是按时间的话就麻烦了,要重新遍逆url再判断是否采集过。

这里说明一下PHP做这个使用到的几个函数,然后这种程序的执行时间比较长,所以要以命令行的方式来执行。再用linux命令天定时执行。

iconv 编码转换函数
file_get_contents 已使读取文件函数,可以直接读取url
preg_match_all 正则解析函数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值