0

サーバーログ(テキストファイル)を分析し、ユーザー入力と一致しない文字列を見つけるためのpythonプログラムを作成しました。とにかく、16 進数でエンコードされた文字列はプログラムでは考慮されません。例: 次の場合、プログラムは、「www.peoplesmonton.com」が利用可能であるにもかかわらず、ユーザー入力に一致しない値がないことを示しています。これを避けるために私を助けてください。

for line in lines:
    match = re.search('\\b' + userinput + '\\b',line)

サンプル テキスト ファイル:

https://www.mysite.com/myworks/accaply/inquiry.asp 
http://www.peoplesmonton.com/amb/cgi-bin/bank/bank/ambt%20Bank%20Of%20Frnak%20PLC_asp.htm 
http://www.peoplesmonton.com/comblk/cgi-bin/bank/bank/ambt%20Bank%20Of%20ambt%20PLC_asp.htm 
4

1 に答える 1

2

情報はURL エンコードされurllib2.unquoteているため、それをデコードするために使用します。

>>> input = '''\
... https://www.mysite.com/myworks/accaply/inquiry.asp 
... http://www.peoplesmonton.com/amb/cgi-bin/bank/bank/ambt%20Bank%20Of%20Frnak%20PLC_asp.htm 
... http://www.peoplesmonton.com/comblk/cgi-bin/bank/bank/ambt%20Bank%20Of%20ambt%20PLC_asp.htm 
... '''
>>> import urllib2
>>> print urllib2.unquote(input)
https://www.mysite.com/myworks/accaply/inquiry.asp 
http://www.peoplesmonton.com/amb/cgi-bin/bank/bank/ambt Bank Of Frnak PLC_asp.htm 
http://www.peoplesmonton.com/comblk/cgi-bin/bank/bank/ambt Bank Of ambt PLC_asp.htm 
于 2013-04-01T11:13:45.457 に答える