找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 896|回复: 1

一个解析过滤爬虫的ip的一个小代码分析

[复制链接]
发表于 2012-7-6 17:33:13 | 显示全部楼层 |阅读模式 来自 中国–河南–郑州
本帖最后由 zmq9999 于 2011-9-21 19:56 编辑

Linux 下的程序
需要有ruby环境
输入为日志文件,并且日志的第一个字段需要是ip
输出为去掉假冒的爬虫之后的谷歌和百度的爬虫的日志记录
如:
cat log | ruby fake_spider_filter.rb > real_spider.log

过滤的原理是反解析爬虫的ip,看是不是百度和谷歌的域名

源代码如下:
  • #Fake_spider_filter .rb
  • Spider = {"Baiduspider" => ["baidu.com",[],[]] , "Googlebot" => ["googlebot.com",[],[]] }
  • #Fake = open("./fake_spider_log.txt","a")
  • def filter(factor,ip,line,spider)
  •    host = factor[0]
  •    goodip = factor[1]
  •    badip = factor[2]
  •   if goodip.include?(ip)
  •      puts line
  •    elsif badip.include?(ip)
  •      #Fake.puts(line)
  •    else
  •      check(ip,host,line,spider)
  •    end
  • end
  • def check(ip,host,line,spider)
  •    check_host = `host #{ip}`
  •    if check_host.include?(host)
  •      puts line
  •      Spider[spider][1] << ip
  •    else
  •      #Fake.puts(line)
  •      Spider[spider][2] << ip
  •    end
  • end
  • while line = gets
  •    line.chomp!
  •    ip = line.split[0]
  •   Spider.each_pair do |spider,factor|
  •      filter(factor,ip,line,spider) if line.include?(spider)
  •    end
  • end



发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;

如何回报帮助你解决问题的坛友,好办法就是点击帖子下方的评分按钮给对方加【金币】不会扣除自己的积分,做一个热心并受欢迎的人!

发表于 2012-7-7 01:25:14 | 显示全部楼层 来自 中国–浙江
过滤掉做什么啊。。

评分

参与人数 1金币 +5 收起 理由
抢楼评分专号 + 5 很幸运,你获得了抢楼奖励!

查看全部评分

发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;

如何回报帮助你解决问题的坛友,好办法就是点击帖子下方的评分按钮给对方加【金币】不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则 需要先绑定手机号

关闭

站长推荐上一条 /1 下一条

QQ|侵权投诉|广告报价|手机版|小黑屋|西部数码代理|飘仙建站论坛 ( 豫ICP备2022021143号-1 )

GMT+8, 2024-11-14 15:15 , Processed in 0.103384 second(s), 14 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表