python - 解析机器人 true 机器人列表 ( bot_list )

python - parse a bot true a list of bots ( bot_list )

我们有一个 apache_log 解析器。我们尝试了几个 whay 来解析 bot 真正的机器人列表 ( bot_list )。但没有成功。我们尝试比较两个列表,但机器人来了或者不是列表。

我们想要实现的是机器人首先经过bot_list。这样只有通过的机器人不在 bot_list.

log = apache_log(lines)

for r in log: 
    bot = r['bot']



bot_list = [ "Googlebot/2.1", 
             "AhrefsBot/5.0", 
             "bingbot/2.0", 
             "DotBot/1.1", 
             "MJ12bot/v1.4.5", 
             "SearchmetricsBot", 
             "YandexBot/3.0", 
             ]

它正在以这种方式为一个机器人工作。

bot = r['bot'].strip()
if not bot.startswith("Googlebot/2.1"):

这就是我们的过滤器,bot.startwith。 但是我们怎样才能实现先通过 bot_list?

希望有人能给我们指明正确的方向?

如果我理解您的问题,您可能需要检查 bot_list 中是否没有机器人。我建议从日志文件中获取机器人名称:

bot_name = r["bot"].split(" ")[22]
if bot_name not in bot_list:

让 22 成为 UserAgent 在您的日志文件中的位置,which you might have already customized

位置不清楚可以用函数:

if not len(filter(lambda x: x in r["bot"], bot_list)):

相同
return_list = []
for i in bot_list:
    if i in r["bot"]:
        return_list.append(i)
return len(return_list)