用户名  找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 929|回复: 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、凡是在飘仙这边购买服务器空间的,飘仙所提供的服务都超出了空间商本身的义务

      在飘仙这里 飘仙会大家尽量少走冤枉路,不花冤枉钱 

2、服务器空间质量可靠,价格优惠,8折优惠长期折扣,不玩套路! 

    所谓套路就是:新用户首单超低配置的服务器空间 给个很大的折扣(还鼓励一次购买多年),表明看起来价格很低,等升级续费或二次购买的时候 价格爆贵!——新手大多不能准确估算自己需要什么样的配置

查看 »

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

GMT+8, 2025-1-14 07:31 , Processed in 0.058869 second(s), 15 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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