1

ユーザー エージェント文字列からボット名とそのバージョンを抽出したいと考えています。分割機能を使ってみました。しかし、ユーザー エージェント文字列を表示する方法はクローラーごとに異なるため、期待される出力を取得するための最良の方法は何ですか? (一般的な解決策が必要であることを考慮してください)

入力(ユーザーエージェント文字列)

Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
Mozilla/5.0 (compatible; AhrefsBot/4.0; +http://ahrefs.com/robot/)
msnbot/2.0b (+http://search.msn.com/msnbot.htm)

期待される出力

Googlebot/2.1
AhrefsBot/4.0
msnbot/2.0b
4

1 に答える 1

3

以下を試してください:

import re

lines = [
    'Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)',
    'Mozilla/5.0 (compatible; AhrefsBot/4.0; +http://ahrefs.com/robot/)',
    'msnbot/2.0b (+http://search.msn.com/msnbot.htm)'
]

botname = re.compile('\w+bot/[.\w]+', flags=re.IGNORECASE)
for line in lines:
    matched = botname.search(line)
    if matched:
        print(matched.group())

版画

Googlebot/2.1
AhrefsBot/4.0
msnbot/2.0b

ボット エージェント名にはbot/.

于 2013-09-03T08:50:19.447 に答える